Python學習之路,點選有全套Python筆記
插入排序
插入排序(英語:Insertion Sort)是一種簡單直覺的排序算法。它的工作原理是通過建構有序序列,對于未排序資料,在已排序序列中從後向前掃描,找到相應位置并插入。插入排序在實作上,在從後向前掃描過程中,需要反複把已排序元素逐漸向後挪位,為最新元素提供插入空間。
時間複雜度
- 最優時間複雜度:O(n) (升序排列,序列已經處于升序狀态)
- 最壞時間複雜度:O(n2)
- 穩定性:穩定
實作
def insert_sort(alist):
"""插入排序"""
n = len(alist)
# 從右邊的無序序列中取出多少個元素執行這樣的過程
for j in range(1, n):
# i代表内層循環的起始值
i = j
# 執行從右邊的無序序列中取出的第一個元素,即i位置的元素,然後将其插入到前面的正确位置中
while i > 0:
if alist[i] < alist[i-1]:
alist[i], alist[i-1] = alist[i-1],alist[i]
i -= 1
else:
break