public class InsertionSort {
public static void main(String[] args) {
int[] arr={1,6,2,3,6,7,9,2,4};
insertSort(arr);
for (int i : arr) {
System.out.println(i);
}
}
public static void insertSort(int[] arr){
//开始选择下标为1的元素,因为下标0只有一个元素,可以看作一个有序子数组
for(int i=1;i<arr.length;i++){
//要插入的数据,也就是排好序的子数组后面那个元素
int temp=arr[i];
//取后面未排序的部分第一个元素,依次从右到左跟排好序部分元素比较,直到一个比其(未排序第一个元素)小的数
int j=i;
while(j>0&&temp<arr[j-1]){
//内层循环一遍,插入元素后面的元素位置后移一步
arr[j]=arr[j-1];
j--;
}
//存在比其小的数插入,如果没有比起小的,原数组不变
arr[j]=temp;
}
}
}