python找出陣列中第2大的數字

2021-08-07 15:38:47 字數 1410 閱讀 8051

首先感謝提出問題的博友,程式是去年找工作的時候寫的,整理的比較粗心,錯誤已經糾正了。

題目比較簡單直接看實現即可,具體的注釋在**中都有:

#!usr/bin/env python

#encoding:utf-8

'''__author__:沂水寒城

功能:找出陣列中第2大的數字

'''

def find_second_large_num(num_list):

'''找出陣列中第2大的數字

'''#直接排序,輸出倒數第二個數即可

tmp_list=sorted(num_list)

print 'second_large_num is:', tmp_list[-2]

#設定兩個標誌位乙個儲存最大數乙個儲存次大數

#two儲存次大值,one儲存最大值,遍歷一次陣列即可,先判斷是否大於one,若大於將one的

#值給two,將num_list[i]的值給one;否則比較是否大於two,若大於直接將num_list[i]的

#值給two;否則pass

one,two=num_list[0],num_list[-1]

for i in range(1,len(num_list)):

if num_list[i]>one:

two=one

one=num_list[i]

elif num_list[i]>two:

two=num_list[i]

else:

pass

print 'second_large_num is:', two

if __name__ == '__main__':

test_list=[[34,11,23,56,78,0,9,12,3,7,5],[10,4,9,3,1],[99,0,2,12]]

for one_list in test_list:

print 'one_list: ',one_list

find_second_large_num(one_list)

結果如下:

one_list:  [34, 11, 23, 56, 78, 0, 9, 12, 3, 7, 5]

second_large_num is: 56

second_large_num is: 56

one_list: [10, 4, 9, 3, 1]

second_large_num is: 9

second_large_num is: 9

one_list: [99, 0, 2, 12]

second_large_num is: 12

second_large_num is: 12

[finished in 0.1s]

Python實現找出陣列中第2大數字的方法示例

題目比較簡單直接看實現即可,具體的注釋在 中都有 usr bin env python encoding utf 8 author 沂水寒城 功能 找出陣列中第2大的數字 def find second large num num list 找出陣列中第2大的數字 直接排序,輸出倒數第二個數即可 t...

陣列 找出陣列的第k大的數

找出陣列的第k大的數 6,7,8,9,3,2,4,8 第3大的數是4 class solution def call self,nums,k if nums none or len nums 0 return 1 result self.qsort nums,0,len nums 1,k retur...

從無序陣列中找出第K大的數

該題目的兩種實現方式,第一種是用堆排序 其中陣列用到了二叉樹的性質 第二種是利用快速排序來實現.最大堆進行公升序排序,主要步驟是 1.初始化堆 將數列a 1.n 構造成最大堆。2.交換資料 將a 1 和a n 交換,使a n 是a 1.n 中的最大值 然後將a 1.n 1 重新調整為最大堆。接著,將...