想要对 10 亿个整数进行排序,而我的系统只有 1 GB RAM。最快、最有效的排序方法是什么?
假设我们在文本文件中输入每行一个整数。
我们使用java程序来排序。
我指定了 RAM,因为我们无法将所有输入整数保存在 RAM 中。
Update:整数是 7 位数字。
整数是 7 位数字。
所以只有一千万个可能的值。
您有 1GB 内存。创建一个计数器数组,每个计数器对应一个可能的值。
通读一次文件,对计数器进行计数。
完成后,根据最终计数器值输出数字。
每个数字最多可以出现 10 亿次。所以32位计数器就足够了。这意味着 10M x 4 字节 = 40M 字节数组。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)