第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

關(guān)于是否存在最優(yōu)雅的求TOP N 問題的方法?

關(guān)于是否存在最優(yōu)雅的求TOP N 問題的方法?

滄海一幻覺 2018-07-17 13:20:44
最近在搞算法,其中遇到最經(jīng)典的問題求一個(gè)數(shù)組前N大的問題。我的方法比較野蠻,沒有參考價(jià)值,是利用python的sorted 函數(shù)排序,對(duì)排好序的數(shù)組提取最后的N 個(gè)數(shù)就是TOP N 了。def solve(l):  l = sorted(l)  i = 1  while i <=4: print l[n-i] i = i + 1# Getting Inputsn = input()l = []for line in range(n): l.append(input())solve(l)有人知道比較優(yōu)秀的處理是怎么樣子嗎?
查看完整描述

2 回答

?
www說

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超8個(gè)贊

這時(shí)候用Heap很優(yōu)雅,但是時(shí)間復(fù)雜度依然是O(nlogn)。當(dāng)top-k中k很小的時(shí)候(k<logn)每次找到最大并記錄實(shí)際上是最快的,時(shí)間復(fù)雜度是O(kn)。

其他的你可以參考Selection Algorithm,時(shí)間復(fù)雜度也是O(n)級(jí)別。


查看完整回答
反對(duì) 回復(fù) 2018-07-18
?
夢里花落0921

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超6個(gè)贊

from heapq import nlargest
    ll = [i for i in range(10, 1000)]
    print(nlargest(3, ll))

# [999, 998, 997]


查看完整回答
反對(duì) 回復(fù) 2018-07-18
  • 2 回答
  • 0 關(guān)注
  • 568 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)