public static void sort1(int[]arr){
int temp;
int j;
for(int i=1;i<arr.length;i++){
if(arr[i]<arr[i-1]){
temp=arr[i];
arr[i]=arr[i-1];
for( j=i-2;j>=0&&temp<arr[j];j--){
arr[j+1]=arr[j];
}
arr[j+1]=temp;
}
}
}
public static void sort2(int [] arr){
int temp;
int j;
for(int i=1;i<arr.length;i++){
if(arr[i-1]>arr[i]){
temp=arr[i];
arr[i]=arr[i-1];
for(j=i-2;j>=0;j--){
if (arr[j]>temp) {
arr[j+1]=arr[j];
}else{
break;
}
}
arr[j+1]=temp;
}
}
}
```int arr[]={45,484,33,651,31,64,61,6,6,11,0};//单循环排序,用
for (int i=0;i<arr.length ;i++ ){
if (i!=arr.length-1){
System.out.println(arr[i]+",");
}else{
System.out.println(arr[i]+",");
}
}
我认为两个总体来说差不多,要看情况。因为第二种判断并执行要多花一些时间,但可以及时地在不用再算的时候停止,如果运气好的话第二种好很多,最坏的情况要坏很多
我不明白的是为何只有一千组数的时候sort2比sort1快