基礎演算法 直接插入排序

2021-07-28 09:43:09 字數 623 閱讀 4201

少壯不努力,老大刷水題。

過去讀書的時候因為腦子不好使,很多概念,公式,演算法都記不住,等長大了,營養趕上來了,才學習的時候就會覺得更加的深刻。

直接插入排序就像平常我們打撲克牌一樣,我們總是在別人發牌的時候,拿到一張牌就把它插到合適的位置上,這個過程中我們的肉眼和大腦做了3件事:

1、拿到新的牌,檢查這張牌的數值是多少(從陣列裡面獲取新的元素)

2、從手上的牌裡面檢索新加入的牌應該插入的位置(檢索當前元素插入的位置)

3、手指張開一點,對手上的牌進行擴容(對已排序陣列進行擴容,擴容期間需要對元素進行移位)

有了這些戰略上的指導,我們就可以進行**實現了:

演算法特點

時間複雜度為o(n^2),空間複雜度為o(1),比較適用於資料集合基本有序的情況,這樣子時間複雜度約為o(n),否則,當n越大,時間複雜度就越高,效率低。

演算法基礎 直接插入排序

一 直接插入排序 基本思想 每次將乙個待排序的序列的乙個元素,插入到已經排好序的序列中。如待排序列a 假設我們希望序列是從下到大排列的,那麼,首先將序列a分解為a1 和a2 其中a1作為排好的序列,這樣一來,首先從a2中取第乙個元素 1,與a1中的1比較,按從下到大順序把 1放入a1中,a2的其他元...

基礎演算法 直接插入排序

把陣列劃分為左右兩個區域,有序區和無序區,開始有序區只有乙個元素,就是陣列最左邊的元素。每次取得無序區第乙個元素x,從有序區最右邊的值開始到最左邊,把比x大得元素都往後移動乙個位置,直到找到乙個不大於x的位置,或者到了最左邊 即有序區所有元素都比x大,x應該插入到最前面 停下來的位置就是插入元素x的...

基礎演算法 直接插入排序

它的演算法思想是 把要排序的陣列分為了兩個部分,一部分是經過插入排序後有序的部分,另一部分是除去第一部分待插入的元素 先將第一部分排序完成,然後再插入這個元素.插入排序由於操作不盡相同,可分為直接插入排序,折半插入排序 又稱二分插入排序 鍊錶插入排序,希爾排序。我們先來看下直接插入排序。直接插入排序...