排序演算法 二 插入排序

2021-09-29 07:47:58 字數 763 閱讀 2216

概念

把陣列分成兩部分,一部分是有順序的,第二部分是沒有順序的,從沒有順序的陣列中拿出來乙個,把他排在有序陣列中的相應位置

時間複雜度

最好: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 排序 直接插入排序的改進 等。一組有序陣列需要新增乙個新的資料後,如何保持仍然有序,則最簡單就是遍歷陣列,找到資料應該插入的位置將其插入即可。直接插入 首先,我們將陣列分為待排序和已排序兩個區間,初始化已排序區間只有乙個...