一、給定一數列:67、25、3、79、88、6,欲將此數列由小排到大。請詳細說明並寫出利用選擇排序法(selection sort)排序的過程。(20 分)
詳解 (共 1 筆)
詳細排序過程
給定初始數列(共 6 個元素):
[67, 25, 3, 79, 88, 6]
-
第 1 回合(Pass 1)
-
未排序區:
67, 25, 3, 79, 88, 6(索引 0 至 5) -
尋找最小值:掃描發現最小值為 3(位於索引 2)。
-
交換位置:將最小值 3 與未排序區的第一個元素 67 對調。
-
結果:
[3, 25, 67, 79, 88, 6](已排序區:[3])
-
-
第 2 回合(Pass 2)
-
未排序區:
25, 67, 79, 88, 6(索引 1 至 5) -
尋找最小值:掃描發現最小值為 6(位於索引 5)。
-
交換位置:將最小值 6 與未排序區的第一個元素 25 對調。
-
結果:
[3, 6, 67, 79, 88, 25](已排序區:[3, 6])
-
-
第 3 回合(Pass 3)
-
未排序區:
67, 79, 88, 25(索引 2 至 5) -
尋找最小值:掃描發現最小值為 25(位於索引 5)。
-
交換位置:將最小值 25 與未排序區的第一個元素 67 對調。
-
結果:
[3, 6, 25, 79, 88, 67](已排序區:[3, 6, 25])
-
-
第 4 回合(Pass 4)
-
未排序區:
79, 88, 67(索引 3 至 5) -
尋找最小值:掃描發現最小值為 67(位於索引 5)。
-
交換位置:將最小值 67 與未排序區的第一個元素 79 對調。
-
結果:
[3, 6, 25, 67, 88, 79](已排序區:[3, 6, 25, 67])
-
-
第 5 回合(Pass 5)
-
未排序區:
88, 79(索引 4 至 5) -
尋找最小值:掃描發現最小值為 79(位於索引 5)。
-
交換位置:將最小值 79 與未排序區的第一個元素 88 對調。
-
結果:
[3, 6, 25, 67, 79, 88](已排序區:[3, 6, 25, 67, 79])
-
剩餘最後一個元素 88 無需再進行比較,已自動位於正確位置。