天天看点

插入排序法小例子

插入排序方法类

public void sort(int arr[]){

        for(int i=1;i<arr.length;i++){
            int insertVal=arr[i];
                //insertVal是准备用于与前一个数比较的数
            int index=i-1;
            while(index>=0&&insertVal<arr[index])

            {
                //上面的判断思想是,先确认index在i-1过后大于等于0;
                //让后让数组里的i 与 i-1 ,就是前后俩数去比较,现在是如果后面的数小与前面的数的情况

                arr[index+1]=arr[index];
                index--;

            }
            //如果前面while的条件不匹配,也就是说后面插入的数比前面一个大
            arr[index+1]=insertVal;

        }



    }      

算法思想:

①把数组里面的无序数中的第一个index=0的数,默认当做一个序列队伍;

②然后定义一个数insertVal,取出的值为index=0后面的一个数;

③将两者比较,

如果insertVal比最早的那个数大,那么就直接让这个数的index+1,那么就是直接排在比较数后面了;