Js 排序演算法 插入排序

2021-08-21 10:28:59 字數 953 閱讀 4776

將記錄按其關鍵字得大小插入到乙個有序的記錄序列中,插入後仍有序;

從待排序的n個記錄中的第二個記錄開始,依次與前面的記錄比較並尋找插入的位置,每次外迴圈結束後,將當前的數插入到合適的位置。特點:①n值較小的時候效率高;②n較大時,若待排的記錄按關鍵字基本有序時效率仍然較高。

穩定性:穩定排序。

最好情況:當待排序記錄已經有序。

最壞情況:如果待排序記錄為逆序。

時間複雜度為:o(n2)

function d_insert(record,n)

record[j+1]=temp;

}return record;

}

function b_insert(record,n)

record[high+1]=temp;

} console.log(record);

return record;

}

shell排序法是對相鄰指定距離(稱為增量)的元素進行比較,並不斷把增量縮小至1,完成排序。

希爾排序的基本思想是

將需要排序的序列劃分成為若干個較小的子串行,對子序列進行插入排序,通過則插入排序能夠使得原來序列成為基本有序。這樣通過對較小的序列進行插入排序,然後對基本有序的數列進行插入排序,能夠提高插入排序演算法的效率。

特點:每一趟以不同的增量進行排序;

不穩定排序;

//希爾排序

function shellsort(record)

record[j+gap]=temp;// 經歷了上層的for迴圈,j=j-gap;所以為了將temp放到合適的位置,要還原j

}gap=math.floor(gap/2);

} console.log(record);

return record;

}

js排序演算法詳解 插入排序

js系列教程5 資料結構和演算法全解 插入排序的原理其實很好理解,可以模擬選擇排序。選擇排序時在兩個空間進行,等於說每次從舊的空間選出最值放到新的空間,而插入排序則是在同一空間進行。可以這麼理解,在乙個陣列中我們不知道哪個是最小值,那麼就假定第乙個就是最小值,然後取第二個值與第乙個值比較產排序後的序...

Js 排序演算法 插入排序和希爾排序

企業招聘筆試和面試的時候很喜歡問到排序演算法,時間複雜度,空間複雜度,穩定性,巴拉巴拉。說到排序演算法,那可是大一時候剛接觸c 語言 得有四五年了吧,有點暴露年齡,哈哈哈 學到的東西了,中間一直也沒有用過,基本上不記得多少了。所以特意花了一天多的時間來回顧一下排序演算法,這一篇就先說下插入排序和希爾...

js實現插入排序演算法

假定有這麼乙個陣列 let ary 12 8,24 16,1 插入排序的做法類似於我們平時打的撲克 先從陣列中抽一張 牌 12 再抓一張牌 與之前抓到的牌依次比較 如果當前新牌a比手裡的某張牌b大,則把a放到b的後面,如果小則繼續向前面的牌比 前提 如果已經比較到第一張了,則把當前牌a插入到最前面即...