插入排序
每一次把未排序部分的第一个元素插入到已排序部分的相应位置。
时间复杂度O(n^2).
public class InsertSort {
public static void insertSort(int[] arr) {
for (int i = 1; i < arr.length; i++) {
int key = arr[i];
int position = i;
//大数放右边
while (position > 0 && arr[position - 1] > key) {
arr[position] = arr[position - 1];
position--;
}
arr[position] = key;
}
}
public static void main(String[] args) {
int[] c = { 4, 9, 23, 1, 45, 27, 5, 2 };
insertSort(c);
for (int i = 0; i < c.length; i++) {
System.out.println(c[i]);
}
}
}