A 講解:

插入排序法 時間複雜度 O(n^2) 為一個stable sort

假設一筆資料 5 6 4 89 25 33 8

用此排序法 從六開始 (所以從陣列第二個元素開始)

其右邊為"未排序"  左邊為"已排序"

然後依照 "6", "4", "89", ...... 依序插入左邊的適當位置

 

而插入細節可以參考程式碼 

以 5 6 (4) ...... 為範例

(4)要如何插到適當位址???

首先檢查 6 是否大於 4??? 有 那就做以下事情:

==> 5 6 (6) .......

很明顯4被取代了 怎辦??? 沒關係 我們已經用 "key" 這個變數記錄了

接著檢查 5 是否大於 4??? 有 那一樣做取代

==> 5 (5) 6

最後發現跑到底了 那我們就把 5 用 "key" (即為值4) 取代囉~~!

 

B 範例例題如下:

先輸入資料數 即陣列大小

接著輸入一筆未排序測資

請輸出排序後的資料 並在每筆測資後空一行

EX:

Input:

7

5 6 4 89 25 33 8

Output:

4 5 6 8 25 33 89

 

C 程式碼如下:

http://codepad.org/APiBOALP

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 codelearner 的頭像
    codelearner

    我的程式學習路~

    codelearner 發表在 痞客邦 留言(0) 人氣()