两种方法都属于直插排序吧?哪种效率高?为什么?

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快