一、給定一數列:67、25、3、79、88、6,欲將此數列由小排到大。請詳細說明並寫出利用選擇排序法(selection sort)排序的過程。(20 分)

詳解 (共 1 筆)

匿名鸚鵡
匿名鸚鵡
詳解 #7580799
2026/10/13

 

詳細排序過程

給定初始數列(共 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 無需再進行比較,已自動位於正確位置。