假定有這麼乙個陣列
let ary =[12
,8,24
,16,1
]
插入排序的做法類似於我們平時打的撲克
先從陣列中抽一張「牌」
==> 12
再抓一張牌
與之前抓到的牌依次比較
如果當前新牌a比手裡的某張牌b大,則把a放到b的後面,如果小則繼續向前面的牌比
前提:如果已經比較到第一張了,則把當前牌a插入到最前面即可
==> 8, 12
==> 8, 12, 24
==> 8, 12, 16, 24
/*
* 實現插入排序的方法
* @params
* ary [array] 需要排序的陣列
* @return
* [array]排序後的新陣列
*/function
insert
(ary)
// 已經比到第一項,我們把新牌放到手中最前面即可
if(j===0)
}}return handle
}let ary =[12
,8,24
,16,1
]ary =
insert
(ary)
console.
log(ary)
JS實現插入排序
一,插入排序 1,演算法簡介 插入排序的工作原理就是將未排序資料,對已排序資料序列從後向前掃瞄,找到對應的位置並插入。插入排序通常採用佔位的形式,空間複雜度為o 1 因此,在從後向前掃瞄的過程中,需要反覆的把已排序的元素逐步向後挪位,為新插入元素提供插入的位置。2,演算法描述 1 從第乙個元素開始,...
Js 排序演算法 插入排序
將記錄按其關鍵字得大小插入到乙個有序的記錄序列中,插入後仍有序 從待排序的n個記錄中的第二個記錄開始,依次與前面的記錄比較並尋找插入的位置,每次外迴圈結束後,將當前的數插入到合適的位置。特點 n值較小的時候效率高 n較大時,若待排的記錄按關鍵字基本有序時效率仍然較高。穩定性 穩定排序。最好情況 當待...
插入排序演算法實現
插入排序在眾多排序演算法中是一種穩定的排序方法,其平均與最差時間複雜度均為o n2 空間複雜度為o 1 主要思路 每一次排序都將待排序元素的元素,從已排序的元素的左邊 右邊 開始,依次往右邊 左邊 比較,滿足比較條件的話就交換元素的位置。原理很簡單,先看 include using namespac...