乙個已經有序的資料序列,要求在這個已經排好的資料序列中插入乙個數,但要求插入後此資料序列仍然有序,這個時候就要用到一種新的排序方法——插入排序法,插入排序的基本操作就是將乙個資料插入到已經排好序的有序資料中,從而得到乙個新的、個數加一的有序資料,演算法適用於少量資料的排序,時間複雜度為o(n^2)。是穩定的排序方法。插入演算法把要排序的陣列分成兩部分:第一部分包含了這個陣列的所有元素,但將最後乙個元素除外(讓陣列多乙個空間才有插入的位置),而第二部分就只包含這乙個元素(即待插入元素)。在第一部分排序完成後,再將這個最後元素插入到已排好序的第一部分中。
def
insertionsort
(alist):
for index in range(1,len(alist)):
currentvalue = alist[index]
position = index
while position>0
and alist[position-1]>currentvalue:
alist[position]=alist[position-1]
position = position-1
alist[position]=currentvalue
alist = [54,26,93,17,77,31,44,55,20]
insertionsort(alist)
print(alist)
時間複雜度
最優時間複雜度:o(n) (公升序排列,序列已經處於公升序狀態)
最壞時間複雜度:o(n2)
穩定性:穩定
用Python實現排序 4 插入排序
實現 def insertion sort ins for表示迴圈插入的遍數 for i in range 1,len ins 設定當前需要插入的元素 current ins i 與當前元素比較的比較元素 preindex i 1 while preindex 0 and ins preindex ...
用陣列實現插入排序
package com.algorithm.sort public class insertsort printarray a insert a printarray a public static void insert int x printarray x public static void ...
插入排序 python實現
以下是插入排序的python函式實現 def insert sort arr for j in range 1,len arr 從list第二個元素開始 key arr j 儲存將要進行插入排序的元素數值 index j 儲存將要進行插入排序的元素的索引 while index 0 and arr ...