2012-04-09 35 views
-3

我想創建一個文件(大小超過2 GB)的整數(每個超過64位)並有效地對文件進行排序。巨大的整數文件在Python中排序

+1

我建議一個想法:使用具有大量內存的機器,加載文件,對其進行分類,寫入結果。 – 2012-04-09 12:36:55

+0

** [合併排序文件]的副本**(http://stackoverflow.com/q/1001569/448474) – hynekcer 2012-11-13 13:07:23

回答

2

1)將它分成很大的文件,可以在內存中進行有效排序。
2)將這些排序後的文件合併成一個文件。

在答案[1]中找到的詳細信息,它使用模塊heapq功能merge

更好的辦法是使用一半的內存然後進行風險交換。

我在這個問題上看不到任何錯誤。這只是問題原理的一個簡單例子。

+1

這個問題出了什麼問題,OP甚至懶得搜索網頁或搜索方式要做到這一點,而是簡單地發佈他或她的[作業](http://stackoverflow.com/questions/10074541/sorting-arbitrary-size-integers)供我們解決。 – 2012-04-09 14:27:16

+0

heapq函數合併不是按排序順序合併文件。我希望合併的文件應該排序。 – viswas 2012-04-10 04:35:52

+1

你讀過什麼嗎? 「合併 - 將多個已排序的輸入合併到單個已排序的輸出中。」這個對我有用。 – hynekcer 2012-04-10 08:30:13