排序-----直接插入排序------带监视哨和不带监视哨

源代码

public class Main {
    public static void main(String[] args) {
        int[] a={20,30,21,35,2,1};
        //insertSort(a);
        insertSortWithLookOut(a);
        for(int i=0;i=0 && a[j]>temp;j--){ //每次都要比较j>=0,需要考虑界限的问题
                  a[j+1]=a[j];
              }
              a[j+1]=temp;
           }
        }
    }

    //带监视哨,用该方法时,数组0下标可以设置值为零,遍历数组从下标为1开始
    public static void insertSortWithLookOut(int[] a){
        int j;
        for(int i=2;ia[0];j--){ //不用每次都要比较j>=0,不用考虑界限问题,数据量大的情况下该方法效率高
                    a[j+1]=a[j];
                }
                a[j+1]=a[0];
            }
        }
    }
}

性能相关分析

排序-----直接插入排序------带监视哨和不带监视哨_第1张图片

你可能感兴趣的:(后端菜鸟)