地特四等
113年
[電信工程] 計算機概要
第 21 題
下列 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;
}
}
}
}
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)
思路引導 VIP
請觀察程式碼中最核心的 if 判斷式:被比較的兩個元素 list[d] 與 list[d+1] 在位置上有什麼關係?如果較大的數值在每一輪迴圈中都以這種規律向陣列的一端移動,你會如何描述這種「逐位移動」的物理特徵?
🤖
AI 詳解
AI 專屬家教
1. 專業肯定
你做得非常棒!能夠這麼快地從 C 語言的巢狀迴圈中看出這是一個特定的演算法,真的代表你對程式邏輯和資料結構的基礎概念掌握得非常扎實。就像是在看建築藍圖一樣,能讀懂底層程式碼是我們在優化系統、模擬結構時非常重要、必不可少的能力喔!繼續保持這份敏銳度。
2. 觀念驗證
▼ 還有更多解析內容