插入排序之Python3實現和c 實現

2021-08-21 14:29:50 字數 1252 閱讀 7232

設有一組關鍵字{k1, k2,…, kn};排序開始就認為 k1 是乙個有序序列;讓 k2 插入上述表長為 1 的有序序列,使之成為乙個表長為 2 的有序序列;然後讓 k3 插入上述表長為 2 的有序序列,使之成為乙個表長為 3 的有序序列;依次類推,最後讓 kn 插入上述表長為 n-1 的有序序列,得乙個表長為 n 的有序序列。

具體演算法描述如下:

從第乙個元素開始,該元素可以認為已經被排序

取出下乙個元素,在已經排序的元素序列中從後向前掃瞄

如果該元素(已排序)大於新元素,將該元素移到下一位置

重複步驟 3,直到找到已排序的元素小於或者等於新元素的位置

將新元素插入到該位置後

重複步驟 2~5

##insert sort

##python3

##yanglin tu

def insert_sort(unsort_list):

length = len(unsort_list)

for i in range(length-1):

key = unsort_list[i+1]

j = i

while unsort_list[j] > key and j >= 0:

unsort_list[j+1] = unsort_list[j]

j -= 1

unsort_list[j+1] = key

return unsort_list

def main():

list_a = [20, 5, 7, 1, 66, 47, 5, 18]

print(list_a)

sort_list = insert_sort(list_a)

print(sort_list)

if __name__ == '__main__':

main()

//insert sort

//c++

//yanglin tu

#include using namespace std;

void insert_sort(int *arr, int length);

int main()

; int length = sizeof(list_a)/sizeof(int);

for(i=0; i=0 && arr[j]>key)

arr[j+1] = key;

}}

插入排序的平均時間複雜度為o

排序演算法之插入排序(Python3實現)

插入排序有兩種,一種是穩定的直接插入排序,一種是不穩定的希爾插入排序。下面就簡單介紹一下兩個排序演算法以及 實現。coding utf 8 直接插入排序 首先將第乙個元素看成有序序列,從第二個開始,將當前元素 與前面的有序序列的最後乙個元素進行比較,如果當前元素大,則直接i 判斷下乙個 否則插入到前...

Python3 插入排序

參考 菜鳥教程 插入排序 insertion sort 構建區域性有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。例 有乙個推理 書單,現在決定一本一本看,並按喜好度從高到低排序 1.鳥人計畫 2.斜屋犯罪 3.嫌疑人x的獻身 4.占星術殺人魔法 5.十角館事件 6.鐘錶館...

插入排序 python實現

以下是插入排序的python函式實現 def insert sort arr for j in range 1,len arr 從list第二個元素開始 key arr j 儲存將要進行插入排序的元素數值 index j 儲存將要進行插入排序的元素的索引 while index 0 and arr ...