民國113年 地方四等 電子工程 計算機概要
第21題
下列C 函式為實作何種排序法?void sort(long list[], long n){long c, d, t;for (c = 0 ; c < ( n…
題目
下列C 函式為實作何種排序法?void sort(long list[], long n){long c, d, t;for (c = 0 ; c < ( n - 1 ); c++){for (d = 0 ; d < n - c - 1; d++){if (list[d] > list[d+1]){t = list[d];list[d] = list[d+1];list[d+1] = t;}}}} A. 合併排序(Merge sort) B. 快速排序(Quick sort) C. 堆積排序(Heap sort) D. 氣泡排序(Bubble sort)
官方答案
- 答案:D. 氣泡排序(Bubble sort)
解析
此函式使用雙層迴圈:外層 c 控制已排序完成的回合數,內層 d 從頭兩兩比較相鄰元素 list[d] 與 list[d+1],若前者較大就交換。每跑完一輪,最大的元素會像氣泡一樣「浮」到陣列尾端,因此內層上界為 n-c-1,避免重複比較已就位的最後 c 個元素。這正是氣泡排序(Bubble sort)的典型特徵,時間複雜度為 O(n²)。合併排序是遞迴分割後合併;快速排序以基準值(pivot)分割;堆積排序則需建立堆積並反覆取出根節點,程式碼中都沒有對應的遞迴、分割或堆積結構。
AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。
官方資料
答案以考選部公告之測驗式試題標準答案 PDF 為準。