插入排序

package com.zhao.algorithm.sort;

import java.util.Arrays;

/**
 * 插入排序
 * 适合小型数据
 */
public class InsertSort {
    public static void main(String[] args) {
        int[] arr={3,8,9,7,6,6,3,10,5,2};
        insertSort(arr);
        System.out.println(Arrays.toString(arr));

    }

    /**
     * 插入排序
     * 我们把第一个数字看成一个有序的,从第二个开始依次和所有的数字进行比较,如果小于前面的数字,前面数字依次往后罗,插入前面的数字之前
     * @param arr  要排序的数组
     */
    private static  void insertSort(int[] arr){
        //遍历所有数字
        for(int i=1;i<arr.length;i++){
            if(arr[i]<arr[i-1]){
                int tmp=arr[i];
                int j;
                //依次移动他前面的元素
                for (j = i-1; j >=0 &&arr[j]>tmp; j--) {
                    arr[j+1]=arr[j];
                }
                //将当前值插入移动之后空缺的位置
                arr[j+1]=tmp;
            }
        }
    }
}

 

posted @ 2020-02-14 22:14  Angry-rookie  阅读(72)  评论(0)    收藏  举报