就是將須要排序的數據不斷插入到已排好序的數據中,時間複雜度爲O(N^2);java
public static void main(String[] args) { int[] a = {22, 21, 3, 4, 2, 19, 200, 50}; insertionSort(a); } public static void insertionSort(int[] a) { for (int p = 1; p < a.length; p++) { //待排序,從第2個數開始排序 int tmp = a[p]; //待排序數字與前面全部的數字進行對比,若是比較數字大於待排序數字就換位置 for (int j = p; j > 0 && a[j - 1] > tmp; j--) { a[j] = a[j - 1]; a[j-1] = tmp; } } System.out.println(Arrays.toString(a)); }
[2, 3, 4, 19, 21, 22, 50, 200]