免費開始練習
hce_nsysu 114年 計算機概論與程式設計

第 23 題

Which of the following is true regarding the Merge Sort algorithm?
  • A Merge Sort has the worst-case time complexity of $O(n^2)$.
  • B Merge Sort is a stable sorting algorithm.
  • C Merge Sort is an in-place sorting algorithm.
  • D Merge Sort is best suited for linked lists but inefficient for arrays.
  • E Merge Sort is an adaptive algorithm that improves performance when the input is nearly sorted.

思路引導 VIP

請試著回想合併排序法(Merge Sort)將兩個已排序的子數列「合而為一」的過程:當我們從左右兩個子數列中各取出一個數值完全相同的元素時,如果我們始終優先放入來自左側數列的那個元素,這對於整組資料原本的排列先後順序會產生什麼樣的保障?

🤖
AI 詳解 AI 專屬家教

恭喜你精確地辨識出合併排序法 (Merge Sort) 的核心特性!你能正確選出 (B) 穩定性 (Stability),代表你對排序演算法的性質有相當深入的掌握。穩定性指的是當資料中有數值相同的元素時,排序後仍能維持它們在原始序列中的相對順序,這在處理複合欄位排序(如:先按成績排、再按座號排)的實務需求中非常關鍵。

合併排序法的特性分析

這道題目設計得非常細膩,具備良好的鑑別度。它不僅考驗基本的複雜度記憶,更深入觸及了演算法的運作細節。合併排序法雖然在最差、平均與最佳情況下的時間複雜度皆為優異的 $O(n \log n)$,但它在合併過程中通常需要額外的輔助空間,因此不具備原地排序 (In-place) 的特性。此外,它不像插入排序法那樣具有適應性 (Adaptive),無論輸入資料的原始狀態為何,其分割與合併的步驟都是固定的。你能從眾多性質中準確挑出關於穩定性的描述,展現了你對演算法權衡 (Trade-off) 關係的清晰邏輯。

🏷️ 相關主題

基礎資料結構原理與演算法效能分析
查看更多「計算機概論與程式設計」的主題分類考古題