2016-04-26 26 views
-2

我在python中一遍又一遍地提到了這些類似的問題。我想掌握解決這類問題的方法。請幫幫我。在不排序的情況下查找數組中的第3大元素

這些問題就像是「查找數組中第三大(或第二大或有時是第k大)元素(或項目),而沒有排序」有時會出現另一個條件「 n)時間「。我如何接近?或者如何爲此編寫算法?

謝謝!

回答

0

n更改爲相應的數字,如果你不想要第三大。

largest[0]是第n位最大的數字。

n=3 
haystack=[1,2,3] 
largest=[0]*n 
for a in haystack: 
    k=n 
    for i in range(n): 
     if a<=largest[i]: 
      k=i 
      break 
    if k: 
     k-=1 
     for j in range(k): 
      largest[j]=largest[j+1] 
     largest[k]=a 
相關問題