输出具有较小物理内存的1亿个整数

sam*_*rth 2 java memory sorting performance ram

想要输出1亿个整数,我的系统只有1 GB的RAM.什么是最快速有效的排序方式?

  1. 假设我们在文本文件中输入每行一个整数.

  2. 我们正在使用java程序进行排序.

  3. 我已经指定了RAM,因为我们无法保存RAM中的所有输入整数.

更新:整数是7位数字.

Thi*_*ilo 6

整数是7位数字.

因此,只有1000万个可能的值.

你有1GB的RAM.创建一个计数器数组,每个可能的值一个.

通读文件一次,计算计数器.

完成后,根据最终计数器值输出数字.

每个号码最多可以出现10亿次.所以32位计数器就足够了.这意味着10M x 4字节= 40M字节数组.