python排序演算法實現 (三)插入排序

2021-08-24 20:49:08 字數 1276 閱讀 6697

插入排序(英語:insertion sort)是一種簡單直觀的排序演算法。它的工作原理是通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。插入排序在實現上,在從後向前掃瞄過程中,需要反覆把已排序元素逐步向後挪位,為最新元素提供插入空間。

:# 從第二個位置,即下標為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]

li =[41

,45,44

,2,78

,62,25

,34,65

]insert_sort(li)

print

(li)

最優時間複雜度:o(n)

最壞時間複雜度:o(n2)

穩定性:穩定

通過增加乙個哨兵位可以提高三分之一的速度

def

shadow_insert_sort()

: alist =[0

,41,45

,44,2

,78,62

,25,34

,65]for i in

range(2

,len

(alist)):

if alist[i]

< alist[i -1]

: alist[0]

= alist[i]

j = i

while alist[j -1]

> alist[0]

: alist[j]

= alist[j -1]

j -=

1 alist[j]

= alist[

0]

python演算法 三 插入排序

給出乙個亂序的數列,將這個數列按從小大到 從大到小 重新排列 插入排序的的邏輯是從選這個數列,乙個乙個的插入一到乙個新的數列中 如下 初始數列 5 1 3 7 9 6 4 2 第乙個數插入空的數列 5第二個數 1 5 插入5所在的位置 新的數列變成 1 5第三個數3 3 1 往後找 3 5 插入當前...

python實現插入排序演算法

插入排序,其原理是通過構建乙個初始的有序序列,然後從無需序列中抽取元素,插入到有序序列的相對排序位置,就像將一堆編號混亂的書,一本一本的放到書架上,找到上下編號之間的位置插入,最後完成整理。python實現插入排序並不難,從第二個位置開始遍歷,與它前面的元素相比較,如果比前面元素小就交換位置,實現如...

python實現插入排序演算法

插入排序,其原理是通過構建乙個初始的有序序列,然後從無需序列中抽取元素,插入到有序序列的相對排序位置,就像將一堆編號混亂的書,一本一本的放到書架上,找到上下編號之間的位置插入,最後完成整理。python實現插入排序並不難,從第二個位置開始遍歷,與它前面的元素相比較,如果比前面元素小就交換位置,實現如...