思路:

从第二个元素开始遍历,若当前元素小于前一个元素执行排序,将当前元素作为标准数,从标准数的前一个元素位置开始向前遍历并且要求遍历的元素大于标准数时,遍历元素向后移,最后当遍历元素不满足大于标准数时,将标准数赋给不满足的元素。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
package DataStruct.Sort;

import java.util.Arrays;

public class InsertionSort {
    public static void main(String[] args) {
        int arr[]=new int[]{4,2,5,7,1,0,7,8,11,34};
        insertionSort(arr);
        System.out.println(Arrays.toString(arr));
    }
    public  static void insertionSort(int [] arr)
    {
        //从数组的第二个元素开始遍历
       for(int i=1;i<arr.length;i++)
       {
           //当数组的前一个元素大于当前所在元素时
           if (arr[i]<arr[i-1])
           {
               //将数组当前元素作为标准数
               int temp=arr[i];
               int j;
               //从标准数的前一个元素开始向前遍历,如果向前遍历的元素大于标准数,将向前遍历的元素后移
               for (j=i-1;j>=0&&temp<arr[j];j--)
                   arr[j+1]=arr[j];
               //将标准数赋给向前遍历时第一次遇到的小于或等于标准数的元素。
               arr[j+1]=temp;
           }
       }
    }
}

 直接插入排序 随笔

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄