python 插入排序

2022-08-17 08:27:09 字數 612 閱讀 6502

# 插入排序

# 在未排序的序列中,構建乙個子串行排序,直到全部資料排序完成

# 將待排序的資料,插入到已經排序的序列中

# 適用於小規模資料排序

# 直接插入排序

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...