# 插入排序
# 在未排序的序列中,構建乙個子串行排序,直到全部資料排序完成
# 將待排序的資料,插入到已經排序的序列中
# 適用於小規模資料排序
# 直接插入排序
nums = [1,9, 8, 5, 6, 7, 4, 3, 2]
nums = [0] + nums # 增加乙個哨兵位,待比較數字0
lenth = len(nums)
for i in range(2, lenth): # 從2開始,0是哨兵位,1是待比較數字
nums[0] = nums[i] # 先將2放置哨兵位
j = i - 1 # 獲取到1的位置
if nums[j] > nums[0]: # 和哨兵位比較
while nums[j] > nums[0]:
nums[j+1] = nums[j] # 比哨兵位的數字大,右移
j -= 1 # 換另乙個有序資料再比較
nums[j+1] = nums[0] # 哨兵位資料歸位
nums.pop(0) # 去掉哨兵位
print(nums)
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...