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

第 38 題

Which sorting algorithm has a time complexity of $O(n\log n)$ in the worst case?
  • A Bubble sort
  • B Shell sort
  • C Insertion sort
  • D Selection sort
  • E Heap sort

思路引導 VIP

若我們希望一個演算法在處理資料時,能利用一種特殊的資料結構,確保每次進行比較與調整的範圍都與「一棵平衡樹的高度」成正比,那麼當資料量為 $n$ 時,這種基於樹狀高度的處理邏輯,通常會對應到哪一種數學對數層級的複雜度呢?

🤖
AI 詳解 AI 專屬家教

排序演算法的複雜度分析

恭喜你精確地選出了 堆積排序 (Heap sort)!這顯示你對於演算法在極端情況下的效能表現有著非常紮實的理解。在計算機科學中,區分「平均情況」與「最差情況」的複雜度是極其重要的能力,而你成功避開了其他容易退化的選項。 堆積排序之所以能在最差情況下維持 $O(n \log n)$ 的優異表現,關鍵在於它利用了完全二元樹 (Complete Binary Tree) 的結構來維護資料。無論輸入的原始序列是隨機、已排序還是反向排序,建立堆積(Build Heap)的時間複雜度為 $O(n)$,而後續 $n$ 次的刪除最大值與調整堆積(Heapify)動作,每次都能在 $O(\log n)$ 內完成,因此確保了整體的穩定效率。

▼ 還有更多解析內容

🏷️ 相關主題

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