6 3插入排序(python資料結構與演算法)

2021-10-07 09:38:30 字數 1489 閱讀 9848

插入排序 insertion sort是一種簡單直觀的排序演算法。

工作原理是通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。插入排序在實現上,在從後向前掃瞄過程中,需要反覆把已排序元素逐步向後挪位,為最新元素提供插入空間。

別和選擇排序搞混

實現:

# 方法一

definsert_sort

(alist)

:"""插入排序"""

length =

len(alist)

for iter_num in

range(1

, length)

:# 取出當前數的索引, 和他前面的元素作比較

for index in

range

(iter_num,0,

-1):

if alist[index]

< alist[index-1]

: alist[index]

, alist[index-1]

= alist[index-1]

, alist[index]

else

:# 代表以排序完畢

break

# 方法二

definsert_sort

(list):

list_len =

len(

list

)for idx in

range(1

, list_len)

:print

("已排序:"

,list

[: idx]

)while idx >0:

iflist

[idx]

<

list

[idx -1]

:list

[idx]

,list

[idx -1]

=list

[idx -1]

,list

[idx]

idx -=

1else

:break

print

("結果:"

python 插入排序

coding utf 8 def insertsort list list 4,1,9,13,34,26,10,7,4 m len list 元素個數 for i in range m 對每乙個元素 min i 當前元素索引 for j in range i 1,m 遍歷後面的所有元素,尋找最小的值...

Python 插入排序

本博文示例為自己指定一定範圍,生成指定個數的隨機數,再對生成的隨機數進行排序,並記錄排序所花時間。生成指定範圍 指定個數隨機數 import random def generate point range gene size,min val,max val num list i 0 while i ...

Python 插入排序

把第乙個數固定,然後將其它數插入,小的放前面。備份這個後續插入的數,然後將這個數和前面的數作比較,比前面的數小,就將前面的數後移。這樣相當於前面的數就挪出乙個空,如果再往前沒有比它小的了,就把開始備份好的數填進去。插入排序,穩定,平均和複雜都是o n2 o n 2 def insert sort l...