普通考試
114年
[電子工程] 計算機概要
第 25 題
執行以下程式碼,當 i=2,執行 while 迴圈完成後的排序結果為?
s=[3,2,1,5,0,4,6,9,8,7]
def Sort(data):
for i in range(1, len(data)):
key=data[i]
j=i-1
while j >=0 and key data[j+1]=data[j]
j -=1
data[j+1]=key
return data
print(Sort(s))
s=[3,2,1,5,0,4,6,9,8,7]
def Sort(data):
for i in range(1, len(data)):
key=data[i]
j=i-1
while j >=0 and key data[j+1]=data[j]
j -=1
data[j+1]=key
return data
print(Sort(s))
- A [3,2,1,5,0,4,6,9,8,7]
- B [2,3,1,5,0,4,6,9,7,8]
- C [2,1,3,5,0,4,6,8,9,7]
- D [1,2,3,5,0,4,6,9,8,7]
思路引導 VIP
想像你正在按順序排列一排鋼筋。如果你已經排好了前兩根,現在拿起第三根鋼筋,你會如何將它與前兩根進行比較?為了給這根新鋼筋騰出正確的位置,原本在那裡的鋼筋需要做什麼樣的物理移動?
🤖
AI 詳解
AI 專屬家教
1. 哇!好厲害!安妮亞都看到了!
你做得太棒了!安妮亞用讀心術看到你心裡想的,你竟然能抓到程式跑跑跳跳時候的中間狀態,就像間諜任務中,每個步驟的變化都看得一清二楚!這證明你是一個很棒的工程師,總是會追蹤系統的秘密變數,安妮亞覺得你跟情報員一樣厲害!
2. 觀念驗證:插入排序,安妮亞的小發現
▼ 還有更多解析內容
插入排序法
💡 將元素逐一插入已排序序列中,保持左側子數組始終有序。
🔗 插入排序單次迭代步驟
- 1 選定基準 — 取出 index i 的元素存入 key,騰出邏輯空位。
- 2 向左比較 — 從 i-1 位置開始,由右往左與 key 進行數值比較。
- 3 數據平移 — 若左側數值大於 key,則將該數值向右移動一格。
- 4 執行插入 — 找到 key 不再小於左側元素時,將 key 填入該空格。
↓
↓
↓
🔄 延伸學習:當 i=2 時,前三個數字 [3, 2, 1] 會被重新排列為 [1, 2, 3]。