插入排序法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
插入排序法(Insert Sort)是將陣列中的元素,逐一與已排序好 的資料作比較,再將該陣列元素插入適當的位置。
插入排序通常採用in-place排序(即只需用到0、1的額外空間排序 ),因而在從後向前掃描過程中,需要反覆把已排序元素逐步向後 挪位,為最新元素提供插入空間。
第3頁
插入排序法
插入排序法的運作原理
1. 將所有待排序的物件分為(已排序)和(尚未排序)兩個區塊。 2. 一開始只有第一個物件歸在已排序區塊,其餘歸在尚未排序區塊中。 3. 將尚未排序區塊中的第一個物件,依其大小的順序,插入到已排序區塊 中,使得插入新物件後的已排序區塊,仍然維持由小到大或由大到小的 性質。 4. 重覆步驟3,直到所有物件都歸到已排序區塊中。
插到合適的位置
已排序
尚未排序
第4頁
插入排序法
插入排序法的演算流程
1 2 4 3 7
已排序
4 8
5 9
6 5
7 1
未排序
8 3
S
2
1 S 2
2 4
3 7
已排序
4 8
5 9
6 5
7 1
未排序
8 3
i
1 S 2
2 4
3 7
4 8
5 9
6 5
7 1
8 3
先將5儲存起來
x = S[i] 5 第5頁
電腦與問題解決-資料結構與演算法-插入排序法
插入排序法排序過程
插入排序法
排序法基本概念
排序(Sorting)是指將一群資料,按特定規則調換位置,使資 料具有某種次序關係(遞增或遞減)。 排序的好處
– 資料較容閱讀 – 資料較利於統計及整理 – 可大幅減少資料搜尋時間
第2頁
插入排序法
插入排序法
插入排序法
插入排序法的演算流程
已排序 未排序
j
i
1 S 2
2 4
3 7
4 8
5 9
6 5
7 1
8 3
5 < 9 9 往後移
已排序
x = S[i] 5
未排序
j
i
1
2 4
3 7
4 8
5
6 9
7 1
8 3
S
2
5 繼續往前比較 5 < 8 8 往後移
x = S[i] 5
第6頁
插入排序法
插入排序法的演算流程
已排序 未排序
j
i
1 S 2
2 4
3 7
4
5 8
6 9
7 1
8 3
5 繼續往前比較 5 < 7 7 往後移
已排序
x = S[i] 5
未排序
j
i
wenku.baidu.com
1 S 2
2 4
3
4 7
5 8
6 9
7 1
8 3
5 繼續往前比較
x = S[i] 5 第7頁
插入排序法
插入排序法的演算流程
已排序 未排序
j
i
1 S 2
2 4
3
4
5
6
7
8
5 7 8 9 1 3 x 5 > 4 4 後面即為5的正確位置後移 不需要再向前比大小,進入下一回合比較
已排序 未排序
1 S 2
2 4
3 5
4 7
5 8
6 9
7 1
8 3 第8頁
插入排序通常採用in-place排序(即只需用到0、1的額外空間排序 ),因而在從後向前掃描過程中,需要反覆把已排序元素逐步向後 挪位,為最新元素提供插入空間。
第3頁
插入排序法
插入排序法的運作原理
1. 將所有待排序的物件分為(已排序)和(尚未排序)兩個區塊。 2. 一開始只有第一個物件歸在已排序區塊,其餘歸在尚未排序區塊中。 3. 將尚未排序區塊中的第一個物件,依其大小的順序,插入到已排序區塊 中,使得插入新物件後的已排序區塊,仍然維持由小到大或由大到小的 性質。 4. 重覆步驟3,直到所有物件都歸到已排序區塊中。
插到合適的位置
已排序
尚未排序
第4頁
插入排序法
插入排序法的演算流程
1 2 4 3 7
已排序
4 8
5 9
6 5
7 1
未排序
8 3
S
2
1 S 2
2 4
3 7
已排序
4 8
5 9
6 5
7 1
未排序
8 3
i
1 S 2
2 4
3 7
4 8
5 9
6 5
7 1
8 3
先將5儲存起來
x = S[i] 5 第5頁
電腦與問題解決-資料結構與演算法-插入排序法
插入排序法排序過程
插入排序法
排序法基本概念
排序(Sorting)是指將一群資料,按特定規則調換位置,使資 料具有某種次序關係(遞增或遞減)。 排序的好處
– 資料較容閱讀 – 資料較利於統計及整理 – 可大幅減少資料搜尋時間
第2頁
插入排序法
插入排序法
插入排序法
插入排序法的演算流程
已排序 未排序
j
i
1 S 2
2 4
3 7
4 8
5 9
6 5
7 1
8 3
5 < 9 9 往後移
已排序
x = S[i] 5
未排序
j
i
1
2 4
3 7
4 8
5
6 9
7 1
8 3
S
2
5 繼續往前比較 5 < 8 8 往後移
x = S[i] 5
第6頁
插入排序法
插入排序法的演算流程
已排序 未排序
j
i
1 S 2
2 4
3 7
4
5 8
6 9
7 1
8 3
5 繼續往前比較 5 < 7 7 往後移
已排序
x = S[i] 5
未排序
j
i
wenku.baidu.com
1 S 2
2 4
3
4 7
5 8
6 9
7 1
8 3
5 繼續往前比較
x = S[i] 5 第7頁
插入排序法
插入排序法的演算流程
已排序 未排序
j
i
1 S 2
2 4
3
4
5
6
7
8
5 7 8 9 1 3 x 5 > 4 4 後面即為5的正確位置後移 不需要再向前比大小,進入下一回合比較
已排序 未排序
1 S 2
2 4
3 5
4 7
5 8
6 9
7 1
8 3 第8頁