關於Top n演算法問題的乙個思路

2021-07-24 16:15:46 字數 289 閱讀 9382

top n問題一直是面試熱點,舉個栗子,100000個無序數字,怎麼找出最大的前10個?

如果用氣泡排序的話,就要比較100000*100000次,很顯然不行,這是最差的情況下,那麼最好的情況也要至少遍歷一遍,也就是100000次,所以,複雜度就是越接近十萬次越好。

可以這樣:取前十個數,用插入排序從大到小排好,然後從第11個數往下遍歷,跟第十個比較,如果比第十個大,就換掉第十個,重新插入排序這十個數,如果比第十個小,接著往下遍歷。這樣,在資料量很大的時候,插入排序越往後進行的越少,複雜度甚至可以忽略不計,直接一次遍歷就可以搞定!

關於乙個演算法題的兩點新思路

在網上看到乙個演算法題,不是很難,搜一下也有解決辦法,但是一般都是幾層for迴圈,試著寫了下 給你一組字串 如 讓你輸出裡面出現次數最多且數值最大的乙個,出現幾次 優點 時間複雜度為o n 缺點 產生一些多餘的空間,如 6,7,8沒有的數也會分配乙個陣列空間,但是基本可以忽略 限制 需要預先知道最大...

關於密碼管理,乙個很好的思路

今天給某大型門戶打 諮詢些問題。坐席人員告訴了我如何操作去解決,第一步 第二步 第三步 首先 其次 再次,說的很清晰。但是我很懶,就說,那麼你幫我去設定吧。通常,這個時候坐席人員有三種方法,一種是問我的帳號,然後以高階使用者身份替我設定好 另一種方法是問我的帳號和密碼,然後以我的身份替我設定好 還有...

關於處理本地檔案的乙個思路

2 可以對具體的檔案進行多標籤分組,多標籤查詢,新增刪除標籤等。3 支援掃瞄服務端配置路徑下的最新檔案狀態,做動態資料更新,刪除同步。4 linux暫時不考慮,在windows環境下,支援使用bat命令呼叫本地系統資源,直接開啟具體檔案 5 後期考慮是否在web端實現對伺服器端的檔案做複製,移動,刪...