1.對 20GB 文件進行排序
有一個 20GB 的文件,每行一個字符串,對其進行排序。
這里可以使用分塊方式來排序,先將每塊進行排序,然后要逐步進行合并,也叫做外部排序。
2.超大文本中搜索兩個單詞的最短距離
有一個超大的文本文件,內部由許多單詞組成,現在給定兩個單詞,要找出兩個單詞在文件中的最小距離。
用兩個下標來記錄兩個單詞的位置,一次循環中就可以不斷移動和比較下標位置,找到最短距離。
3.從 10 億數字中尋找最小的 100 萬個數字
先排序肯定會占用很大的內存空間。
這時可以采用大頂堆,先給前 100 萬個數字創建一個大頂堆,最大元素位于堆頂。
只有比堆頂元素小的才可以插入堆中,并刪除原來的最大元素。
最后剩下的就是最小的 100 萬個數字。
如果將數據換成流數據,幾乎只能用堆來做。
如果對您有幫助,請點贊關注支持我,謝謝! ?
如有錯誤或者不足之處,敬請指正! ?
個人主頁:星不易 ?
算法通關村專欄:不易|算法通關村 ?