民國105年 第2梯次 電腦軟體設計(C++)乙級 學科

第72題

假設輸入資料有n 個,在最糟情形下,下列那些排序法的時間複雜度不是θ ( n l o g n ) ?此 處n 為資料個數

題目

假設輸入資料有n 個,在最糟情形下,下列那些排序法的時間複雜度不是θ ( n l o g n ) ?此 處n 為資料個數

  1. (1) S e l e c t i o n S o r t
  2. (2) S h e l l S o r t
  3. (3) R a d i x S o r t
  4. (4) I n s e r t i o n S o r t

官方答案

(1) S e l e c t i o n S o r t、(2) S h e l l S o r t、(3) R a d i x S o r t、(4) I n s e r t i o n S o r t

解析

排序法在最糟情形下的時間複雜度需個別判斷。比較式排序中 Merge Sort、Heap Sort 最糟為 θ(n log n),但本題四者皆非:Selection Sort 不論輸入皆需約 n(n-1)/2 次比較,最糟為 θ(n²);Insertion Sort 在反序時每筆往回搬移,最糟亦為 θ(n²);Shell Sort 依間隔序列而定,常見序列最糟為 θ(n log² n) 或 θ(n^1.5),並非嚴格 θ(n log n);Radix Sort 屬非比較式,複雜度為 θ(d(n+k)),與 n log n 無關。故四者最糟情形均不屬 θ(n log n),全選。

AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。

官方資料