免費開始練習
高考申論題 110年 [電力工程] 計算機概論

第 五 題

詳細說明下列 Java 語言程式的執行過程,並寫出程式的輸出。(20 分)

public class Test
{
public static void main(String[ ] args)
{
int [] numbers = {60, 20, 55, 30, 40, 20};
for(int index = 1; index < numbers.length; index++)
{
int key = numbers[index];
int position = index;
while(position>0 && numbers[position - 1] > key)
{
numbers[position] = numbers[position - 1];
position--;
}
numbers[position] = key;
for(int count = 0; count < numbers.length; count++)
System.out.print(numbers[count] + " ");
System.out.println();
}
}
}
📝 此題為申論題

思路引導 VIP

這題要求分析一段 Java 程式。首先要辨識出這段程式的演算法類型。觀察 inner while loop:它是將一個 key 往前面已排序的部分插入,並將較大的值後移,這是典型的「插入排序(Insertion Sort)」。作答時需按步驟追蹤外層 for 迴圈的每一次迭代,並精確寫出每次 print 的結果。注意:原始陣列中有兩個 20,要觀察其穩定性(Stability)。

🤖
AI 詳解 AI 專屬家教

【考點分析】 本題考查對 Java 語法、陣列操作及經典演算法「插入排序(Insertion Sort)」執行流程的追蹤能力。 【理論/法規依據】

▼ 還有更多解析內容
📝 Java 插入排序法
💡 透過循序比較將元素插入已排序序列的正確位置

🔗 插入排序單次迭代邏輯

  1. 1 取出基準值 — 提取 index 位置元素存入 key 變數
  2. ↓
  3. 2 比較與位移 — 將 key 與左側元素比較,較大者往右平移
  4. ↓
  5. 3 插入定點 — 找到合適位置後,將 key 填入該空隙
  6. ↓
  7. 4 狀態輸出 — 每一輪外層迴圈結束,即時輸出當前陣列
🔄 延伸學習:延伸學習:插入排序在最差情況下的時間複雜度為 O(n²)
🧠 記憶技巧:由左向右,邊比邊移,留空插入,穩定第一
⚠️ 常見陷阱:容易忽略 index 從 1 開始、忘記每輪輸出、或數值相同時位移條件判斷錯誤
氣泡排序 (Bubble Sort) 選擇排序 (Selection Sort)

🏷️ AI 記憶小卡 VIP

AI 記憶小卡

升級 VIP 解鎖記憶小卡

考前複習神器,一眼掌握重點

🏷️ 相關主題

程式碼追蹤與執行分析
查看更多「[電力工程] 計算機概論」的主題分類考古題