插入排序 InsertionSort
介紹:
插入排序的工作原理是,對於每個未排序數據,在已排序序列中從後向前掃描,找到相應位置並插入。
步驟:
- 從第一個元素開始,該元素可以認爲已經被排序
- 取出下一個元素,在已經排序的元素序列中從後向前掃描
- 如果被掃描的元素(已排序)大於新元素,將該元素後移一位
- 重複步驟3,直到找到已排序的元素小於或者等於新元素的位置
- 將新元素插入到該位置後
- 重複步驟2~5
排序演示:
源代碼:(python實現)
def insert_sort(ary): n = len(ary) for i in range(1,n): if ary[i] < ary[i-1]: temp = ary[i] index = i #待插入的下標 for j in range(i-1,-1,-1): #從i-1 循環到 0 (包括0) if ary[j] > temp : ary[j+1] = ary[j] index = j #記錄待插入下標 else : break ary[index] = temp return ary |
轉載