js系列教程5-資料結構和演算法全解
插入排序的原理其實很好理解,可以模擬選擇排序。選擇排序時在兩個空間進行,等於說每次從舊的空間選出最值放到新的空間,而插入排序則是在同一空間進行。
可以這麼理解,在乙個陣列中我們不知道哪個是最小值,那麼就假定第乙個就是最小值,然後取第二個值與第乙個值比較產排序後的序列,然後再取第三個值與排序後的序列進行比較插入到對應的位置,依次類推。
打個比方就模擬水滸傳一百單八將的排名吧,每個好漢來了不知道自己排老幾,怎麼辦,那就和已經排過級別的人比較,然後找到其對應的位置,單八將宋萬、杜遷先上的梁山,先預設杜遷第一來的也是單八將最厲害的,然後宋萬來了,一比較宋萬厲害,那宋萬排第一,杜遷排第二,接下來朱貴來了,朱貴沒他們兩個厲害,那就排第三,再後來林沖來了,林沖比他們三個都厲害,那林沖排第一,宋萬第二,杜遷第三,朱貴第四,依次類推。梁山排名其實就是典型的插入
Js 排序演算法 插入排序
將記錄按其關鍵字得大小插入到乙個有序的記錄序列中,插入後仍有序 從待排序的n個記錄中的第二個記錄開始,依次與前面的記錄比較並尋找插入的位置,每次外迴圈結束後,將當前的數插入到合適的位置。特點 n值較小的時候效率高 n較大時,若待排的記錄按關鍵字基本有序時效率仍然較高。穩定性 穩定排序。最好情況 當待...
Js 排序演算法 插入排序和希爾排序
企業招聘筆試和面試的時候很喜歡問到排序演算法,時間複雜度,空間複雜度,穩定性,巴拉巴拉。說到排序演算法,那可是大一時候剛接觸c 語言 得有四五年了吧,有點暴露年齡,哈哈哈 學到的東西了,中間一直也沒有用過,基本上不記得多少了。所以特意花了一天多的時間來回顧一下排序演算法,這一篇就先說下插入排序和希爾...
js實現插入排序演算法
假定有這麼乙個陣列 let ary 12 8,24 16,1 插入排序的做法類似於我們平時打的撲克 先從陣列中抽一張 牌 12 再抓一張牌 與之前抓到的牌依次比較 如果當前新牌a比手裡的某張牌b大,則把a放到b的後面,如果小則繼續向前面的牌比 前提 如果已經比較到第一張了,則把當前牌a插入到最前面即...