找考题网-背景图
问答题

请完成Java程序:本题是一个冒泡排序程序的实例。冒泡排序的含义是将相邻的两个数作比较,如果是升序排列的话,如果前边的数大,则将两个数交换。从第一个数开始两两比较一次,就可以将最大的数移动到最后。 注意:请勿修改main()主方法和其他已有语句内容,仅在横线处填入适当语句。 import java.io.*; public class simple { public static int[]Data=new int[10]; public static void main(String[] args) int i; int Index; Index=0; InputStreamReader ir; BufferedReader in; ir=new InputStreamReader(System.in); in=new BufferedReader(ir); try { do { System.out.println("Please input the number"+ Index+"you want to sort(Exit for 0):"); String s=in.readLine(); Data[Index]=Integer.parseInt(s); Index++; } while(Data[Index-1]!=0); } catch(IOException e) { System.out.println(e.getMessage()); } System.out.print("Before bubble sorting:"); for(i=0; i<Index-1; i++) System.out.print(" "+Data[i]+" "); System.out.println(" "); BubbleSort(Index-1); System.out.print("After Bubble Sorting:"); for(i=0; i<Index-1;i++) System.out.print(" "+Data[i]+" "); System.out.println(" "); } public static void BubbleSort(int Index) { int i, j, k; boolean Change; int Temp; for(j=Index; j>1;j--) { Change=false; for(i=0; i<j-1;i++) { if(Data[i+1]<Data[i]) { Temp=Data[i+1]; Data[i+1]=Data[i]; ______; ______; } } if(Change) { System.out.print("Current Sorting Result:"); for(k=0; k<Index; k++) System.out.print(" "+Data[k]+" "); System.out.println(" "); } } } }

【参考答案】

Data[i]=Temp Change=true [讲解] 本题考查知识点:基本排序算法。冒泡排序是最常用的交换排序方式,其核心算法就是比较和交换。交换的最简单方法是用一个中间变量作交换中介。先把其中一个值存入临时变量,然后将另一个值赋给第一个值,最后将临时变量赋给另一个值(第1个空)。另外,为加快速度,如果排序已经完成了,就可以直接返回,而不必等待循环结束(第2个空,将标志变量设为真)。
热门试题