Examly題庫立即開始練習
2 類科共用卷
普考-電信工程普考-電子工程
計算機概要11219單選題

下列由 C 語言程式撰寫的函數 sort 實作了何種排序法? void sort (int a[], int l, int h) { if (l >= h) return; int j, i, key; i=l; j=h; key=a[i]; while (i < j) { while (i < j&&a[j] > key) j--; if (i < j) a[i++] = a[j]; while (i < j&&a[i]< key) i++; if (i < j) a[j--] = a[i]; } a[i] = key; if (l < i-1) sort (a, l, i-1); if (i+1 < h) sort (a, i+1, h); }

A快速排序(Quick sort)正確答案
B插入排序(Insertion sort)
C選擇排序(Selection sort)
D合併排序(Merge sort)
答案與詳解
A
正確答案
以第一個元素為 pivot (key),雙向指標往中間夾擊分割,再遞迴處理左右兩段,標準快速排序。

為什麼答案是 A

key=a[i] 設為樞紐,i、j 由兩端向內掃描並交換,最後 a[i]=key 將樞紐歸位,再對 [l,i-1] 與 [i+1,h] 遞迴,完全符合 Quick Sort 的 partition + 分治結構。

考點:Quick Sort 分治考點:Insertion Sort考點:Selection Sort考點:Merge Sort 差異
載入中…

計算機概要 相關題目

想練更多計算機概要考古題?

Examly 收錄 38 萬+ 道歷屆題目,每題都有像這樣的精選詳解。免費下載,立即開練。

Download on theApp Store即將推出Google Play
黑皮