首先感謝提出問題的博友,程式是去年找工作的時候寫的,整理的比較粗心,錯誤已經糾正了。
題目比較簡單直接看實現即可,具體的注釋在**中都有:
結果如下:#!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 重新調整為最大堆。接著,將...