(二) 排序演算法之插入排序(c 實現)

2021-10-08 08:33:32 字數 893 閱讀 5793

插入排序與上節所講的氣泡排序差不多,都是將陣列劃分為已排序子陣列和未排序子陣列,同時從未排序的陣列中取出乙個放入已排序子陣列中。但是這裡不同的是,插入排序是取未排序子陣列的第一位元素,插入到已排序的陣列中的對應位置。

下面用 | 分隔已排序和未排序陣列,如:

待排序資料:7 | 0,2,8,1 (因為是插入,可以設第乙個元素是已排序元素)

一次排序:

0,7 | 2,8,1 (將0插入到有序陣列(7)中)

二次排序:

0,2,7 | 8,1 (將2插入到有序陣列(0,7)中)

三次排序:

0,2,7 , 8 | 1 (將8插入到有序陣列(0,2,7)中)

四次排序:

0,1,2,7 , 8 (將1插入到有序陣列(0,2,7,8)中)

由此可知,插入排序就將乙個無序陣列元素插入到有序陣列中,並重複執行n-1遍,就能獲得有序陣列

void

insertsorted

(vector<

int>

& nums)

else

} nums[j]

= temp;

//當沒有比要插入的數大時,插入資料,完成一次排序

}}

02 排序 插入排序

基本原理 直接插入法思想 1.在原始資料中,將第乙個資料作為已排序的資料序列 2.從陣列中獲取下乙個元素,在已經排序好的元素中從後向前掃瞄,並判斷該元素與已排列好的的大小 3.若排序序列的元素大於新元素,則將該元素移到下一位置 4.重複步驟三,直到找到已排序的元素小於或者等於行元素的位置 5.將新元...

C 實現排序演算法之插入排序

include include include using namespace std void print int arr,int len cout endl void insertsort int arr,int len arr j 1 basic void main int len sizeo...

插入排序演算法之C 實現

插入排序,顧名思義其實現形式是插入.在整個大小不一的佇列中,第一次 從乙個元素開始,將後面相鄰的元素 第二個元素 提取出來,放在乙個變數中暫時儲存,然後和第二個元素前面的那個元素 第乙個元素 做比較,如果比它大,當然就不變動位置 但如果比它小,就將前面那個元素移動到第二個元素的位置,然後將變數的元素...