資料結構 八大排序之直接插入排序

2021-08-28 13:13:59 字數 1054 閱讀 7777

直接插入排序(straight insertion sort)是一種最簡單的排序方法,其基本操作是將一條記錄插入到已排好的有序表中,從而得到乙個新的、記錄數量增1的有序表

1.直接插入排序的基本思想:

以陣列int arr = ;   為例:

1.)我們以第乙個資料3為有序數列

2.)從第二個開始,將每次拿到的數先儲存起來,然後迴圈和有序數列中的數作比較,最後將拿到的數插入它的有序位置

2.大白話理解

很多排序方法,都可以用我們小時候上學排隊的方式來解釋。插入排序,想一下以前在上課的時候,老師在給我們排隊時,有沒有這樣的舉動,讓你和在你前面的同學,比身高,如果你比前面的同學矮的話,前面的同學就站到你的位置,然後你在和你現在前面的同學進行身高比較,如果你還是比較矮的話,前面的同學則換到你的位置。直到你比前面同學高為止,將你插入前面同學後面。

假設老師從第二個同學開始調整位置,然後一直調整到最後一位,那麼這種排序的方法就叫做插入排序。

我們可以從下方的**中很容易看到直接插入排序的思想:

**展示:

void insertsort(int* arr, int sz)

--j;

} if (count > 0)}}

我們可以看出直接插入排序,在每次插入元素時,只是找比他大的元素,然後去搬移資料。這樣在排序成功後不會影響陣列內每個數的相對位置。所以直接插入排序是穩定的排序時間複雜度:o(n*n)空間複雜度:o(1)

八大排序 直接插入排序

直接插入排序 straight insertion sort 的基本操作是將乙個元素插入到序列已經有序的那一部分中去,從而使序列中有序的部分逐漸擴大,直到整個序列有序。博主認為直接插入排序過程比較容易理解,所以不作過多贅述,直接上 include void main int length sizeo...

八大排序 插入排序 直接插入排序

基本思想 將乙個記錄插入到已排序好的有序表中,從而得到乙個新,記錄數增1的有序表。即 先將序列的第1個記錄看成是乙個有序的子串行,然後從第2個記錄逐個進行插入,直至整個序列有序為止。要點 設立哨兵,作為臨時儲存和判斷陣列邊界之用。直接插入排序示例 如果碰見乙個和插入元素相等的,那麼插入元素把想插入的...

八大排序之插入排序(直接插入排序 希爾排序)

插入排序 英語 insertion sort 是一種簡單直觀的排序演算法。它的工作原理是通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。插入排序可以分為直接插入排序和希爾排序。直接插入排序 相信大家都玩過撲克牌 即使沒玩過,也聽說過 這就是插入,模擬到我們排序中,就...