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;
}
}
}
}