问题描述
要求输入数组的大小可以弄过n来控制,例如n=10,数组就可以随机产生10个数,n=20,就可以产生20个,以此类推。然后用随机产生的数组用选择法排序,帮我改改程序,看看哪里不对,谢谢啦:importjava.io.*;importjava.util.Arrays;importjava.util.Random;publicclassSelection{publicstaticvoidmain(Stringagrs[])throwsIOException{Stringnumber;inta;BufferedReaderbuf=newBufferedReader(newInputStreamReader(System.in));System.out.println("pleasetypenumber");number=buf.readLine();a=Integer.parseInt(number);xx(a);}publicstaticvoidxx(intn){int[]A=newint[n];Randomrand=newRandom();for(inti=0;i<A.length;i++){A[i]=rand.nextInt(100);;System.out.println(A[i]+"");selectionSort1(A);}}publicstaticvoidselectionSort1(int[]x){for(inti=0;i<x.length-1;i++){for(intj=i+1;j<x.length;j++){if(x[i]>x[j]){inttemp=x[i];x[i]=x[j];x[j]=temp;}System.out.print(x[i]+"");}}}
解决方案
解决方案二:
importjava.io.*;importjava.util.Scanner;publicclassSelection{publicstaticvoidmain(Stringagrs[])throwsIOException{//Stringnumber;inta;//BufferedReaderbuf=newBufferedReader(newInputStreamReader(System.in));Scannerscanner=newScanner(System.in);System.out.println("pleasetypenumber");//number=buf.readLine();a=scanner.nextInt();xx(a);}publicstaticvoidxx(intn){int[]A=newint[n];//Randomrand=newRandom();for(inti=0;i<A.length;i++){//A[i]=rand.nextInt(100);;A[i]=(int)(Math.random()*100);System.out.print(A[i]+"");}System.out.println();selectionSort1(A);}publicstaticvoidselectionSort1(int[]x){for(inti=0;i<x.length-1;i++){for(intj=i+1;j<x.length;j++){if(x[i]>x[j]){inttemp=x[i];x[i]=x[j];x[j]=temp;}}}for(intin:x){System.out.print(in+"");}}}
解决方案三:
调试结果:pleasetypenumber53538861383
解决方案四:
调试结果:pleasetypenumber535388613831335388386
解决方案五:
publicclassSelection{publicstaticvoidmain(Stringagrs[])throwsIOException{Stringnumber;inta;BufferedReaderbuf=newBufferedReader(newInputStreamReader(System.in));System.out.println("pleasetypenumber");number=buf.readLine();a=Integer.parseInt(number);xx(a);}publicstaticvoidxx(intn){int[]A=newint[n];Randomrand=newRandom();for(inti=0;i<A.length;i++){A[i]=rand.nextInt(100);System.out.print(A[i]+"t");}System.out.println();selectionSort1(A);}publicstaticvoidselectionSort1(int[]x){//定义最小数的位置intminPosition;for(inti=0;i<x.length-1;i++){//设置最小数的位置minPosition=i;for(intj=i+1;j<x.length;j++){//如果设置的最小数比查询的下一个数大,设置最小数的位置是查询的数if(x[minPosition]>x[j]){minPosition=j;}}//最小数的位置不是最开始的数if(minPosition!=i){//交换最开始的数与最小数的位置inttemp=x[i];x[i]=x[minPosition];x[minPosition]=temp;}}for(inti=0;i<x.length;i++){System.out.print(x[i]+"t");}System.out.println();}}
解决方案六:
楼主的代码有一点小问题是:排序结束在输出,不要一边排序一边输出
解决方案七:
引用1楼goodmrning的回复:
Javacodeimportjava.io.*;importjava.util.Scanner;publicclassSelection{publicstaticvoidmain(Stringagrs[])throwsIOException{//Stringnumber;inta;//BufferedReaderbuf=newBufferedReader(newInputStreamReader(System.in));Scannerscanner=newScanner(System.in);System.out.println("pleasetypenumber");//nu…
请问这位高手;in:x什么意思?