圖解直接插入排序算法,你真的了解它了嗎?

喜歡互聯網技術的同學,一定要關注我哦!

上一期,講述了關於冒泡排序算法的實現及優化


傳送門:《 》

這一期,我將講述另一種排序算法,那就是直接插入排序。

直接插入排序是插入排序中的最簡單的排序方法,類似於玩紙牌那樣,

基本思想是:依次將待排序序列中的每一個記錄插入到一個已排好序的序列中,直到全部記錄都排好序!

圖解直接插入排序算法

(1)首先,將整個序列分成已經有序的序列和無序的序列,初始化將第一個元素為有序區,無序區則是剩下的所有元素。

(2)再次,將無序區的第一個記錄插入到有序區的合適位置中,從而使無序區減少一個記錄,有序區增加一個記錄。

(3)重複執行步驟2,直到無序區為空!

圖解直接插入排序算法,你真的瞭解它了嗎?

Java語言實現直接插入排序算法

圖解直接插入排序算法,你真的瞭解它了嗎?

結果測試:為了方便測試,採用隨機生成整數放進數組。

圖解直接插入排序算法,你真的瞭解它了嗎?

結果明顯符合期望!

圖解直接插入排序算法,你真的瞭解它了嗎?

直接插入排序:在最好情況下,待排序序列已經為正序,則時間複雜度為O(n),最壞情況下,時間複雜度為O(n*n),平均情況下也是O(n*n)。

下次將會講解其他排序算法的細節及實現,感興趣的同學一定要關注哦!


分享到:


相關文章: