java题:一百万个乱序数字排序,中间有重复的,但由于内存不够,不能一下存储100万个数,怎样才排序?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java题:一百万个乱序数字排序,中间有重复的,但由于内存不够,不能一下存储100万个数,怎样才排序?相关的知识,希望对你有一定的参考价值。
test.txt文件
内容如下:
4321542
54325325
65436543
23452
2345235
52345325
324532
35324532
.....
有一百万行数字,中间可能有重复,所有数字都小于 21亿
由于内存不够,不能一次性读取全部内容
怎样才能排序
求方法
有代码更好, 如果有代码 提高悬赏采纳~~
我把问题补充完了
关键是不能重复,而且内存存不下
兄弟 这是 java题。。。。
追答咳咳,哈哈,我知道是java 问题,你用的是list 存的吧,Arraylist 是没有限制的,因为它是一个接口动态分配大小,它的的范围依据你 初始定义的大小或者是动态分配,比如:
Arraylist list = new ArrayList<int>(10), 那它就是10. 你给java heap space分配的大小足够就不会溢出。
要么就是你读文件的时候有问题,你可以试试 BufferedInputStream
doc: http://docs.oracle.com/javase/7/docs/api/java/io/BufferedInputStream.html
File file = new File(address);
BufferedInputStream bufferInput = null;
try
bufferInput = new BufferedInputStream(new FileInputStream(file),
10 * 1024 * 1024);
catch (FileNotFoundException e)
JOptionPane.showMessageDialog(null, "No such file!");
BufferedReader input = new BufferedReader(new InputStreamReader(
bufferInput));
String str = null;
try
while ((str = input.readLine()) != null)
//list.add(str);
catch(...)...追问
妹的 非说我字数超出!!
以上是关于java题:一百万个乱序数字排序,中间有重复的,但由于内存不够,不能一下存储100万个数,怎样才排序?的主要内容,如果未能解决你的问题,请参考以下文章
树状数组。 数组修改某个元素的数值/求出前n个元素的和,需要在一百毫秒处理上百万个数字
一百万个结构数组,根据其中一项值排序,用双链表还是数组排序效率更好
一百万个结构数组,根据其中一项值排序,用双链表还是数组排序效率更好,请给出最快C或C++算法代码。