作業 插入排序

2022-04-11 00:49:40 字數 781 閱讀 6291

以從小到大排序為例,元素0為第乙個元素,插入排序是從元素1開始,盡可能插到前面。插入時分插入位置和試探位置,元素i的初始插入位置為i,試探位置為i-1,在插入元素i時,依次與i-1,i-2······元素比較,如果被試探位置的元素比插入元素大,那麼被試探元素後移一位,元素i插入位置前移1位,直到被試探元素小於插入元素或者插入元素位於第一位。

def insertsort(arr):

length = len(arr)

for i in range(1,length):

x = arr[i]

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

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

if x < arr[j-1]:

arr[j] = arr[j-1]

else:

# 位置確定為j

break

arr[j] = x

def printarr(arr):

for item in arr:

print(item, end=" ")

arr = [90, 61, 51, 40, 49, 77, 15, 100, 56, 19]

insertsort(arr)

printarr(arr)

結果:

作業 簡化的插入排序

本題要求編寫程式,將乙個給定的整數插到原本有序的整數序列中,使結果序列仍然有序。輸入在第一行先給出非負整數n 10 第二行給出n個從小到大排好順序的整數 第三行給出乙個整數x。在一行內輸出將x插入後仍然從小到大有序的整數序列,每個數字後面有乙個空格。5 1 2 4 5 7 31 2 3 4 5 7 ...

插入排序 折半插入排序

折半插入排序 binary insertion sort 直接插入排序採用順序查詢法查詢當前記錄在已排好序的序列中插入位置,這個 查詢 操作可利用 折半查詢 來實 現,由此進行的插入排序稱之為折半插入排序 binary insertion sort 演算法思想 1 將待排序的記錄存放在陣列r 1.n...

插入排序 折半插入排序

折半插入排序是基於直接插入排序的優化。直接插入排序 將第i個元素插入時,通過折半查詢的方式,來查詢第i個元素合適的位置。當0 i 1 位置上的元素都已經排序ok,現需要插入第i個元素,設其值為temp 令low 0,high i,mid high low 2。那麼temp可能插入的位置是 low h...