插入排序 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...