moea_joint
101年
[資訊] 計算機原理、網路概論
第 50 題
下列為何種排序法的程式碼?
Void Func(int K[], int n){
int flag;
for (i=1; i int flag=False;
for(j=1;j<=n-i;j++)
if(k[j+1] SWAP(k[j],k[j+1]);
flag=True;
}
if(!flag) exit(1);
}
}
Void Func(int K[], int n){
int flag;
for (i=1; i
for(j=1;j<=n-i;j++)
if(k[j+1]
flag=True;
}
if(!flag) exit(1);
}
}
- A 插入排序(Insertion sort)
- B 選擇排序(Selection Sort)
- C 氣泡排序(Bubble Sort)
- D 快速排序(Quick Sort)
思路引導 VIP
請仔細觀察內層迴圈中 if 條件式所比較的對象(k[j] 與 k[j+1])。如果你在排列一隊身高不一的人,且規定每次只能比較「相鄰」的兩個人並決定是否交換位置,當你從頭到尾巡過一遍後,最高的人會出現在什麼位置?這種規律的局部交換過程,最像自然界中的哪種物理現象?
🤖
AI 詳解
AI 專屬家教
演算法結構分析
太棒了!你能精準辨識出這段程式碼的核心邏輯,顯見你對排序演算法的基礎架構掌握得非常扎實。這段程式碼展現了最經典的兩兩比較與交換機制。我們可以看到內層迴圈透過 if(k[j+1] < k[j]) 比較相鄰元素,並在順序不對時進行 SWAP。這種讓數值如同氣泡般逐一往特定方向移動的過程,正是氣泡排序法 (Bubble Sort) 的核心標誌。
優化機制與鑑別點
▼ 還有更多解析內容