62,614
社区成员
发帖
与我相关
我的任务
分享
class maopaoArrange{
public void maopao(int[] arr){
int i,j,temp;
for(i=0;i <arr.length-1;i++) {
for(j=0;j <arr.length-i-1;j++) { //你原来的是:for(j=0;j <arr.length-i;j++)
if(arr[j]>arr[j+1]) {
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
System.out.print("冒泡排序后的数据"); //这句从下面的for循环中移出来
for(i=0;i <arr.length;i++){
System.out.print(" "+arr[i]);
}
System.out.println(); //我加的。
}
}
class MixArrange{
public void Mix(int[] arr){
for(int i=0;i <arr.length;i++){ //你原来是for(int i=0;i <10;i++) 你用10不对,如果arr这个数组不是10的长度,就有问题了。
int temp=0;
//你用k记录最小元素的下标,这样在下面的for循环中就不用每次交换元素了。只在循环结束交换一次就可以了。
int k=i;
for(int j=1+i;j <arr.length;j++){ //你原来是:for(int j=1+i;j <10;j++)
if(arr[j] <arr[k]) {
k=j;
}
}
temp=arr[k];
arr[k]=arr[i];
arr[i]=temp;
}
System.out.print("选择排序后的数据"); //这句多下面的for循环中移出来。
for(int i=0;i <arr.length;i++){
System.out.print(" "+arr[i]);
}
System.out.println(); //我加的
}
}
public class ArrayArrange{
public static void main(String[] args){
maopaoArrange mc1=new maopaoArrange();
MixArrange mc2=new MixArrange();
int[] arr=new int[10];
for(int i=0;i <arr.length;i++){ //for(int i=0;i <10;i++)
arr[i]=(int)(Math.random()*30);
System.out.print(" "+arr[i]); //我加的。把数组的原始状态打印出来,以便比较。
}
System.out.println(); //我给你加的
mc1.maopao(arr);
mc2.Mix(arr);
}
}