场景应用:100亿的数据你怎么排序
生活随笔
收集整理的這篇文章主要介紹了
场景应用:100亿的数据你怎么排序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 場景
- 實現思路
- 實現方案
- 方案一:放數據庫里(哈哈哈)
- 方案二:桶排序(正經桶)
- 方案三:計數排序(特殊桶)
- 方案四:基數排序(特殊情況)
場景
給100億個數字排序,100億個 int 型數字放在文件里面大概有 37.2GB,非常大,內存一次裝不下了。那么肯定是要拆分成小的文件一個一個來處理,最終在合并成一個排好序的大文件。
實現思路
1.把這個37GB的大文件,用哈希分成1000個小文件,每個小文件平均38MB左右(理想情況),把100億個數字對1000取模,模出來的結果在0到999之間,每個結果對應一個文件,所以我這里取的哈希函數是 h = x % 1000,哈希函數取得"好",能使沖突減小,結果分布均勻。
2.拆分完了之后,得到一些
總結
以上是生活随笔為你收集整理的场景应用:100亿的数据你怎么排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是游戏内全局光照
- 下一篇: 服务器的原理,服务器原理