排序算法(一)插入排序
插入排序类似纸牌玩家整理手中的纸牌:每次取一张纸牌,并在取下一张之前,将它放在适当的位置,使手中的所有纸牌按顺序排列。
时间复杂度:O(N2)
空间复杂度:O(1)
稳定性:稳定
// C: 插入排序 void insertion_sort(int list[], int listSize) { int i, j; int next; for (i = 1; i < listSize; ++i) { next = list[i]; for (j = i - 1; j >= 0 && next < list[j]; --j) { list[j + 1] = list[j]; } list[j + 1] = next; } }
# Python 3: 插入排序 def insertion_sort(array: list): for j in range(1,len(array)): key = array[j] i = j - 1 while i >= 0 and array[i] > key: array[i + 1] = array[i] i = i - 1 array[i + 1] = key print(array) return array