JAVA随机给一组整数排序_大小为10的数组或列表来排序1000个随机整数

importjava.io.*;publicclasswaibupaixu {staticint[] arr=newint[10];finalstaticintMAXCOUNT=1000;publicstaticvoidcreateRandomNumberFile()throwsIOException {

RandomAccessFile raf=newRandomAccessFile("raw","rw");

FileOutputStream fos=newFileOutputStream("source.txt");

PrintStream ps=newPrintStream(fos);

PrintStream   old=System.out;

System.setOut(ps);intrandomNum;for(inti=0; i

randomNum=(int) (Math.random()*10000);

raf.writeInt(randomNum);

System.out.print(randomNum+"\t");if((i+1)%5==0) {

System.out.println();

}

}

System.setOut(old);

ps.close();

fos.close();

}publicstaticvoidmain(String[] args)throwsIOException

{

RandomAccessFile rafa[]=newRandomAccessFile[10];//外部文件 等待归并RandomAccessFile rafb=null;//外部文件 归并目标intmin;//等待归并的元素 定位createRandomNumberFile();longt1,t2;

t1=System.currentTimeMillis();

System.out.println(""+"排序开始:"+t1);for(inti=0; i<100; i++) {

readRandomNumberFile("raw",i*10,10);//读10个sort_arr();//排序writeRandomNumberFile("raw10_"+i,0,10);//写小文件}for(inti=0; i<10; i++) {

rafb=newRandomAccessFile("raw100_"+i,"rwd");//读入10个for(intj=0; j<10; j++) {

rafa[j]=newRandomAccessFile("raw10_"+(10*i+j),"rwd");

arr[j]=rafa[j].readInt();

}//剩余90个for(intj=0; j<100; j++) {

min=0;for(intk=0; k<10; k++) {if(arr[k]!=-1)

min=k;

}//找到最小for(intk=0; k<10; k++) {if(arr[k]

min=k;

}//保存rafb.writeInt(arr[min]);//替补读入if(arr[min]!=-1)

{if( rafa[min].getFilePointer()

{

arr[min]=rafa[min].readInt();

}else{

arr[min]=-1;

}

}

}for(intj=0; j<10; j++) {

rafa[j].close();

rafa[j]=null;

}

rafb.close();

rafb=null;

}

rafb=newRandomAccessFile("raw1000","rw");//读入10个for(inti=0; i<10; i++) {

rafa[i]=newRandomAccessFile("raw100_"+i,"rw");

arr[i]=rafa[i].readInt();

}//剩余990个for(inti=0; i<1000; i++) {

min=0;for(intk=0; k<10; k++) {if(arr[k]!=-1)

min=k;

}//找到最小for(intk=0; k<10; k++) {if(arr[k]

min=k;

}//保存rafb.writeInt(arr[min]);//替补读入if(arr[min]!=-1)

{if( rafa[min].getFilePointer()

{

arr[min]=rafa[min].readInt();

}else{

arr[min]=-1;

}

}

}for(intj=0; j<10; j++) {

rafa[j].close();

rafa[j]=null;

}

rafb.close();

rafb=null;

t2=System.currentTimeMillis();

System.out.println(""+"排序结束:"+t2);

System.out.println(""+"用时 ("+(t2-t1)+"ms)");

Raw2Txt("raw1000","sort1000.txt",1000);

System.gc();for(inti=0; i<10; i++) {

File n=newFile("raw100_"+i);

forceDeleteFile(n);

}for(inti=0; i<100; i++) {

File n=newFile("raw10_"+i);

forceDeleteFile(n);

}

}publicstaticvoidsort_arr(  ){inttmp;for(inti=0; i<9; i++) {for(intj=i+1; j<10; j++) {if(arr[i]>arr[j])

{

tmp=arr[i];

arr[i]=arr[j];

arr[j]=tmp;

}

}

}

}//从位置m,读入n个整数到arr数组publicstaticvoidreadRandomNumberFile(String file,longm,longn)throwsIOException

{

RandomAccessFile raf=newRandomAccessFile(file,"rwd");

raf.seek(Integer.SIZE/8*(m));for(inti=0; i

arr[i]=raf.readInt();

}

raf.close();

raf=null;

}//从位置m,将arr数组的n个整数写入文件publicstaticvoidwriteRandomNumberFile(String file,longm,longn)throwsIOException

{

RandomAccessFile raf=newRandomAccessFile(file,"rwd");

raf.seek(Integer.SIZE/8*(m));for(inti=0; i

raf.writeInt(arr[i]);

}

raf.close();

raf=null;

}publicstaticvoidRaw2Txt(String src,String dst,longn)throwsIOException {inttmp;

RandomAccessFile raf=newRandomAccessFile(src,"rwd");

FileOutputStream fos=newFileOutputStream(dst);

PrintStream ps=newPrintStream(fos);

PrintStream   old=System.out;

System.setOut(ps);for(inti=0; i

tmp=raf.readInt();

System.out.print(tmp+"\t");if((i+1)%5==0) {

System.out.println();

}

}

raf.close();

raf=null;

System.setOut(old);

ps.close();

fos.close();

}staticbooleanforceDeleteFile(File file)

{booleanresult=false;intdelCount=0;while(!result&&delCount++<9)

{

System.gc();

result=file.delete();

}returnresult;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值