免費開始練習
高考申論題 108年 [資訊處理] 資料結構

第 三 題

三、給予如下程式,假設 x[] = [30, 75, 53, 47, 21, 94, 88, 39],lb = 0,ub = 7,請問執行完下列程式後,x[]的內容為何?(25 分)
void divide&conquer(int x[], int lb, int ub, int *pj)
{
int a, down, temp, up;
a = x[lb];
up = ub;
down = lb;
while(down < up){
while(x[down] <= a && down < ub)
down++;
while(x[up] > a)
up--;
if(down < up){
temp = x[down];
x[down] = x[up];
x[up] = temp;
}
}
x[lb] = x[up];
x[up] = a;
*pj = up;
}
📝 此題為申論題

思路引導 VIP

  1. 演算法識別:觀察程式碼,這是快速排序(Quick Sort)中的 Partition(分割)演算法,以陣列第一個元素為基準值(Pivot)。
  2. 初始化:x = [30, 75, 53, 47, 21, 94, 88, 39], lb=0, ub=7, a = x[0] = 30
🤖
AI 詳解 AI 專屬家教

【考點分析】 本題考查「快速排序法(Quick Sort)」的分割程序(Partition Procedure)。此方法透過基準值(Pivot)將數列分為兩部分,左側小於等於基準值,右側大於基準值。 【理論/法規依據】

▼ 還有更多解析內容

🏷️ 相關主題

排序演算法與搜尋演算法之分析與應用
查看更多「[資訊處理] 資料結構」的主題分類考古題

📝 同份考卷的其他題目

查看 108年[資訊處理] 資料結構 全題