插入排序演算法 Python實現

2021-10-24 13:25:50 字數 1033 閱讀 1819

#定義排序陣列

arr =[5

,8,1

,3,6

,2,4

,7]#元素移動次數

count =

0def

insertsort

(arr,count)

:#插入排序過程,從第二個開始插入

for i in

range(1

,len

(arr)):

#因為需要向前遍歷,因而使用while操作

j = i -

1#插入值,因為排序過程位置可能被覆蓋

value = arr[i]

while j >=0:

if arr[j]

> value:

#當前下標元素大於插入值,此時當前元素後移

arr[j+1]

= arr[j]

count = count +

1else

:#找到插入位置了

break

#下標前移,找插入位置

j = j -

1#如果放到if中,解決不了當前插入元素為最小值情況

#因為後面減了一次,所以加上補齊

arr[j+1]

= value

print

("\n元素交換次數: "

+str

(count)

,end=

" ")

#列印陣列

defprintarr

(arr)

:for item in arr:

print

(item,end=

" ")

if __name__ ==

'__main__'

:print

("排序前陣列:"

) printarr(arr)

insertsort(arr,count)

print

("\n排序後陣列:"

) printarr(arr)

python實現插入排序演算法

插入排序,其原理是通過構建乙個初始的有序序列,然後從無需序列中抽取元素,插入到有序序列的相對排序位置,就像將一堆編號混亂的書,一本一本的放到書架上,找到上下編號之間的位置插入,最後完成整理。python實現插入排序並不難,從第二個位置開始遍歷,與它前面的元素相比較,如果比前面元素小就交換位置,實現如...

python實現插入排序演算法

插入排序,其原理是通過構建乙個初始的有序序列,然後從無需序列中抽取元素,插入到有序序列的相對排序位置,就像將一堆編號混亂的書,一本一本的放到書架上,找到上下編號之間的位置插入,最後完成整理。python實現插入排序並不難,從第二個位置開始遍歷,與它前面的元素相比較,如果比前面元素小就交換位置,實現如...

python實現插入排序演算法

插入排序,其原理是通過構建乙個初始的有序序列,然後從無需序列中抽取元素,插入到有序序列的相對排序位置,就像將一堆編號混亂的書,一本一本的放到書架上,找到上下編號之間的位置插入,最後完成整理。python實現插入排序並不難,從第二個位置開始遍歷,與它前面的元素相比較,如果比前面元素小就交換位置,實現如...