import java.util.Arrays;
/**
* 插入排序的思想:
* 插入排序是将新的元素插入到一个排好序的子线性表中,直到整个线性表排好序
* 具体操作是:循环遍历整个待排序的表,将当前访问的元素赋值给一个临时变量curElement,
* 然后利用一个内循环从当前位置i的前一个位置k(k = i - 1)开始逐个位置向前遍历,
* 寻找小于或等于curElement的元素位置,或k < 0时结束,表示curElement应该位于数组第一个位置
*/
public class InsertSort {
public static void insertSort(int[] arr){
for (int i = 0; i < arr.length; i++) {
int curElement = arr[i];
int k;
for (k = i - 1; k >=0 && arr[k] > curElement; k--) {
arr[k + 1] = arr[k];
}
arr[k + 1] = curElement;
}
}
public static void main(String[] args) {
int[] nums = {2,9,5,4,8,1,6,7};
insertSort(nums);
System.out.println(Arrays.toString(nums));
}
}