对于插入排序,我们可以理解为打扑克牌时候手上的牌从小到大排序,取一个然后插入到合适位置保持顺序,从而我们可以很明显的感受到对于少量元素,这种排序算法是比较有效的。
原理图如下:
实现源码:
public static void GetSortFor(int[] nums) { for (int i = 1; i < nums.Length; i++) { int key = nums[i]; int pre = i; for (int j = i-1; j>=0; j--) { if (nums[j] > key) { nums[pre] = nums[j]; pre = pre - 1; } } nums[pre] = key; } }
public static void GetSort(int[] nums) { for (int i = 1; i < nums.Length; i++) { int key = nums[i]; int pre = i - 1; while (pre > -1 && nums[pre] > key) { nums[pre + 1] = nums[pre]; pre = pre - 1; } nums[pre + 1] = key; } }