地特四等
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
請你觀察內層迴圈中 list[d] 與 list[d+1] 的關係:這兩個元素在陣列中的位置是遠隔還是「相鄰」?如果條件滿足並執行了變數 t 的三行指令,這兩個元素的位置發生了什麼變化?當第一輪外層迴圈結束時,數列中「最大」的那個元素會被推移到哪個特定的位置?
🤖
AI 詳解
AI 專屬家教
教授點評:紮實的基礎是工程之母
- 大力肯定: 同學做得好!你能精準識別出這段 C 程式碼的核心邏輯,這代表你對演算法基礎的掌握非常穩定。在工程實務中,清晰的邏輯判斷力就如同精確的受力分析一樣重要。
▼ 還有更多解析內容