阿摩線上測驗 登入

申論題資訊

試卷:100年 - 100 公務升官等考試_薦任_資訊處理:程式語言#26886
科目:程式語言
年份:100年
排序:0

題組內容

五、插入排序法(Insertion Sort)做法是假設前i-1 個已經排序完成,在插入第i個數的時 候,就只需要一個一個比較,找到適合的地方放進去,最後輸入完,也就剛好排序 完了。選擇排序法(Selection Sort)則是每次走過整個陣列,在走的過程中記錄最 小的,最後再將它放到後面去,要重複n次。它們的時間複雜度皆為O(n2 )。

申論題內容

⑵請分別寫出插入排序法與選擇排序法之演算法(可使用任何程式語言或虛擬碼)。 (10 分)

詳解 (共 1 筆)

詳解 提供者:hchungw

說明

插入排序法(Insertion Sort)

  • 時間複雜度:最壞情況下為 O(n2)O(n^2)O(n2),當陣列為逆序時需要進行大量的元素移動。
  • 最佳情況:當陣列已經有序時,時間複雜度為 O(n)O(n)O(n)
  • 空間複雜度:因為是就地排序,空間複雜度為 O(1)O(1)O(1)
  • 穩定性:插入排序是穩定的排序演算法。

選擇排序法(Selection Sort)

  • 時間複雜度:無論輸入數據是否有序,時間複雜度均為 O(n2)O(n^2)O(n2)
  • 空間複雜度:因為是就地排序,空間複雜度為 O(1)O(1)O(1)
  • 穩定性:選擇排序是不穩定的排序演算法,因為相同元素的位置可能會改變。

透過這些演算法和虛擬碼,可以清晰地看到插入排序和選擇排序的具體實現及其應用場景。