python 插入排序

2021-09-02 07:00:29 字數 649 閱讀 7785

時間複雜度為o(n^2),基本思想就是將無序序列插入到有序序列中。例如要將陣列arr=[4,2,8,0,5,1]排序,可以將4看做是乙個有序序列(圖中用藍色標出),將[2,8,0,5,1]看做乙個無序序列。無序序列中2比4小,於是將2插入到4的左邊,此時有序序列變成了[2,4],無序序列變成了[8,0,5,1]。無序序列中8比4大,於是將8插入到4的右邊,有序序列變成了[2,4,8],無序序列變成了[0,5,1]。以此類推,最終陣列按照從小到大排序。
def insert_sort(list):

_len = len(list)

for i in range(1, _len):

temp = list[i]

for j in range(i, -1, -1):

# j為當前位置,試探j-1位置

if temp < list[j - 1]:

list[j] = list[j - 1]

else:

# 位置確定為j

break

list[j] = temp

return list

list = [1, 10, 3, 5, 2, 4, 6, 7, 9, 8]

print( insert_sort(list) )

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