插入排序算法解析

前面說過最原始的複雜度爲 O(n2) 的冒泡和選擇排序,也跳躍到了複雜度爲  O(n log n) 的快速排序,現在又再看一個複雜度同樣爲 O(n2) 的插入排序。從排序名稱結合代碼我們理解了爲什麼叫做冒泡或是選擇,快速排序自認高名,那麼何以這又謂之插入排序呢?是怎麼插入,從左邊往右邊插,還是從右邊往左邊插,這得搞清它的排序原理:

它在列表較低的一端維護一個有序的子列表(從最左端一個元素開始),並逐個將每個新元素(高端的)"插入"這個子列表。插入的時候遍歷低端列表,找準位置插入便是,插入點後的元素需後移,當所有高端的元素插入完成了,整個列表就變得有序了。

整個排序操作示意圖如下: 閱讀全文 >>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章