#定義排序陣列
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實現插入排序並不難,從第二個位置開始遍歷,與它前面的元素相比較,如果比前面元素小就交換位置,實現如...