概念
把陣列分成兩部分,一部分是有順序的,第二部分是沒有順序的,從沒有順序的陣列中拿出來乙個,把他排在有序陣列中的相應位置
時間複雜度
最好:o(n),原陣列已經是公升序的。
最壞:o(n²)
平均:o(n²)
**// 插入演算法
function
insert_sort
(arr)
else
} arr[j +1]
= value
}}var sortarr =[9
,6,3
,5,2
,1,7
,343,6
,643
,243
,544,5
,63,234,0
,56,123
]insert_sort
(sortarr)
console.
log(sortarr)
// [0, 1, 2, 3, 5, 5, 6, 6, 7, 9, 56, 63, 123, 234, 243, 343, 544, 643]
解釋let value = arr[i] // 是從沒有順序的陣列中取出來的 比較做的數
let j = i-1 // 是有序陣列的長度
for (; j >= 0; j--)
arr[j + 1] = value // 把當前的位置放上value
排序演算法 二 插入排序
繼上篇 排序演算法 一 基礎篇 這篇部落格咱們聊聊插入排序 經常用的插入排序方法有直接插入排序,折半插入排序,表插入排序和希爾排序。這篇部落格咱們重點說一下直接插入排序 直接插入排序 straight insertion sorting 它是一種簡單的排序方法。基本思想 依次將每個記錄插入到乙個已經...
演算法 排序演算法(二) 插入排序
本篇博文旨在介紹排序演算法中的插入排序 介紹了直接插入排序和希爾排序,並通過時間複雜度和空間複雜度進行了分析 最後用 實現了直接插入排序和希爾排序 1 將陣列分成有序和無序的兩塊區間,有序區間開始只劃分陣列的第乙個元素 2 從無序區間的第乙個數,找到合適的位置插入到有序的陣列中 在最好的情況下,已經...
插入排序演算法 二
插入排序是一種常見的排序演算法,它主要包括直接插入,折半插入和希爾 shell 排序 直接插入排序的改進 等。一組有序陣列需要新增乙個新的資料後,如何保持仍然有序,則最簡單就是遍歷陣列,找到資料應該插入的位置將其插入即可。直接插入 首先,我們將陣列分為待排序和已排序兩個區間,初始化已排序區間只有乙個...