插入排序適合於部分有序序列和小規模的資料。其平均時間複雜度為 o(n^2),空間複雜度為 o(1),並且為穩定排序。
插入排序將待排序序列分為有序區 (記為 s 區)和無序區(記為 r 區)。以從小到大的順序為例,每次從 r 區彈出乙個元素 o,要將元素 o 插入到 s 區中恰當位置。從 s 區最右端開始,依次比較 s 區元素與元素 o 的大小。如果元素o 比 s 區元素小,就將 s 區元素後移一位。如果元素 o 大於 s 區元素,就在該元素右邊一位插入元素 o。
public
static
void
insertionsort
(int
x)else
} x[j +1]
= value;
}}
演示:
public
static
void
main
(string[
] args)
;insertionsort
(b);
for(
int value: b)
system.out.
printf
("%d "
, value)
;}
輸出:2 3 12 17 19 34 91 插入排序 Java實現
插入排序 insertsort 插入排序通過把序列中的值插入乙個已經排序好的序列中,直到該序列的結束。插入排序是對氣泡排序的改進。它比氣泡排序快2倍。一般不用在資料大於1000的場合下使用插入排序,或者重複排序超過200資料項的序列。1 思想 每次選擇乙個元素k插入到之前已排好序的部分a 1 i 中...
JAVA實現插入排序
一般來說,插入排序都採用in place在陣列上實現。具體演算法描述如下 從第乙個元素開始,該元素可以認為已經被排序 取出下乙個元素,在已經排序的元素序列中從後向前掃瞄 如果該元素 已排序 大於新元素,將該元素移到下一位置 重複步驟3,直到找到已排序的元素小於或者等於新元素的位置 將新元素插入到該位...
插入排序 Java實現
插入排序,顧名思義就是將乙個數插入到一組已經生成的有序陣列當中,使之成為一組新的有序陣列。那麼我們考慮存在一組陣列,首先將p1插入到陣列中,使之成為有序陣列 接著將p2插入到陣列中,使之成為有序陣列.最後將pn插入到陣列中,使之成為有序陣列,這個有序陣列也就是我們最後的結果。附上 和實驗結果 pub...