插入排序(insertsort),如撲克牌插牌一樣,通過構建有序序列,將元素插入乙個已經排序好的序列中。插入排序是對氣泡排序的改進。
插入排序同樣通過構建巢狀for的形式進行排序。
for (i=1; i
i++)
for(j=i-1; j >= 0; j--)
將a[0]看成是已經排好序的序列,所以從第2個元素(i=1)開始遍歷,直到最後乙個;
然後進行比較的是已經排序好的元素,即從j=i-1
開始,向前遍歷,直到找到其位置;
插入元素的位置由於不是交換,所以可以先把插入的元素的位置空出來,然後比較前面的元素,將位置挪動,方便元素插入。
參考學習
1.白話經典演算法系列之二 直接插入排序的三種實現
效能分析
平均時間複雜度:o(n^2)
空間複雜度:o(1)
穩定性:穩定
PHP 演算法02之插入排序
舉例4個數 7,4,3,8 從左往右兩兩比較,即 7和4比較,發現7大於4,那麼交換,數列變成 4,7,3,8 然後我們再看第2位和第三位,發現7大於3,那麼交換,數列變成 4,3,7,8 然後再去看前兩位,左邊還是大於右邊,那麼繼續交換將變成 3,4,7,8 最後看第三位和第四位,發現左邊小於右邊...
02 排序 插入排序
基本原理 直接插入法思想 1.在原始資料中,將第乙個資料作為已排序的資料序列 2.從陣列中獲取下乙個元素,在已經排序好的元素中從後向前掃瞄,並判斷該元素與已排列好的的大小 3.若排序序列的元素大於新元素,則將該元素移到下一位置 4.重複步驟三,直到找到已排序的元素小於或者等於行元素的位置 5.將新元...
插入排序演算法
插入排序演算法 思想 把排序過程看作是序列單個有序擴充套件為整體有序的過程,即首先取序列第二個元素與第乙個元素比較,將其插入合適位置,再將第三個元素與前兩個元素比較,將其插入合適位置,如此進行,直到最後取第n個元素與前n 1個元素進行比較並將其插入合適位置。演算法 建立日期 2004 12 14 插...