資料結構與演算法 :插入排序
阿新 • • 發佈:2019-01-04
插入排序
插入排序(英語:Insertion Sort)是一種簡單直觀的排序演算法。它的工作原理是通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃描,找到相應位置並插入。插入排序在實現上,在從後向前掃描過程中,需要反覆把已排序元素逐步向後挪位,為最新元素提供插入空間。
插入排序分析
程式碼實現:
def insert_sort(alist): # 從第二個位置,即下標為1的元素開始向前插入 for i in range(1, len(alist)): # 從第i個元素開始向前比較,如果小於前一個元素,交換位置 for j in range(i, 0, -1): if alist[j] < alist[j - 1]: alist[j], alist[j - 1] = alist[j - 1], alist[j] alist = [54, 26, 93, 17, 77, 31, 44, 55, 20] insert_sort(alist) print(alist)
時間複雜度
- 最優時間複雜度:O(n) (升序排列,序列已經處於升序狀態)
- 最壞時間複雜度:O(n2)
- 穩定性:穩定