今天分享的一道演算法面試題來源于 360校園招聘2015屆技術類筆試題 ,
題目描述
用某種排序方法對關鍵字序列(25,84,21,47,15,27,68,35,20)進行排序,序列的變化情況采樣如下:
20,15,21,25,47,27,68,35,84
15,20,21,25,35,27,47,68,84
15,20,21,25,27,35,47,68,84
請問采用的是以下哪種排序演算法()
A. 選擇排序
B. 希爾排序
C. 歸并排序
D. 快速排序
題目決議
這道題目很好的考察了大家對排序方法程序的理解程度,
對于題目給出的四個選項,很容易就能排除 選擇排序,因為對于 選擇排序 而言它的操作是 第一次從待排序的資料元素中選出最小(或最大)的一個元素,存放在序列的起始位置,然后再從剩余的未排序元素中尋找到最小(大)元素,然后放到已排序的序列的末尾,
20,15,21,25,47,27,68,35,84
序列中 20 不是最小的記錄,故排除 選擇排序,
接下來的三個選項實際上挺難抉擇的,我們首先來回顧一下它們三個的影片,



對于 希爾排序 而言,需要知道 增量 ,根據影片我們可以理解為 gap = 4 ,
先分為四組,
25 15
84 27
21 68
47 35
對這四組分別進行插入排序,加上剩下的 20 變成了
15 27 21 35 25 84 68 47 20
與題目給出的步驟不同,故排除 希爾排序,
再來看歸并排序影片,邏輯操作就簡單了,
先一分為二,
25,84,21,47,15,27,68,35,20
變成了
25,84,21,47
與
15,27,68,35,20
第二步應該是(這里與影片稍許不同,沒有切分到底)
15 25 27 68 35 20 84 21 47
與題目給出的步驟不同,故排除 歸并排序,
所以,答案選 D :快速排序,
歡迎前往我的個人網站進行閱讀:www.cxyxiaowu.com
原文地址:https://www.cxyxiaowu.com/2536.html
?? 看完三件事:
如果你覺得這篇內容對你挺有啟發,我想邀請你幫我三個忙:
- 點贊,讓更多的人也能看到這篇內容(收藏不點贊,都是耍流氓 -_-)
- 關注我和專欄,讓我們成為長期關系
- 關注公眾號「五分鐘學演算法」,第一時間閱讀最新的演算法文章,公眾號后臺回復 1024 送你 50 本 演算法編程書籍,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/138798.html
標籤:其他
上一篇:演算法題--盛水最多的容器
下一篇:排序演算法小匯總
