民國112年 第2梯次 電腦軟體設計(JAVA)乙級 學科

第61題

下面數列共有6 個元素{34,8,64,51,32,21},若以陣列方式儲存,經由插入排序法(Insertion Sort),由小排至大,則下列那些是在排序過程…

題目

下面數列共有6 個元素{34,8,64,51,32,21},若以陣列方式儲存,經由插入排序法(Insertion Sort),由小排至大,則下列那些是在排序過程處理中,可能發生的順序?

  1. (1) 8,32,34,51,64,21
  2. (2) 8,32,21,34,51,64
  3. (3) 8,34,64,32,51,21
  4. (4) 8,34,64,51,32,21

官方答案

(1) 8,32,34,51,64,21、(2) 8,32,21,34,51,64、(4) 8,34,64,51,32,21

解析

插入排序會逐一取出第 i 個元素,將它插入前面已排序好的部分。初始數列為 {34,8,64,51,32,21};處理 8 後變成 8,34,64,51,32,21,即選項 4;處理 51 後變成 8,34,51,64,32,21;處理 32 後變成 8,32,34,51,64,21,即選項 1。若改用相鄰交換的方式把 21 往前插入,過程中會依序出現 8,32,34,21,51,64 與 8,32,21,34,51,64,即選項 2。選項 3 中 32 已跑到 51 前面,但當時 32 還沒被處理,因此不可能出現。

AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。

官方資料