插入排序與上節所講的氣泡排序差不多,都是將陣列劃分為已排序子陣列和未排序子陣列,同時從未排序的陣列中取出乙個放入已排序子陣列中。但是這裡不同的是,插入排序是取未排序子陣列的第一位元素,插入到已排序的陣列中的對應位置。
下面用 | 分隔已排序和未排序陣列,如:
待排序資料: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 實現
插入排序,顧名思義其實現形式是插入.在整個大小不一的佇列中,第一次 從乙個元素開始,將後面相鄰的元素 第二個元素 提取出來,放在乙個變數中暫時儲存,然後和第二個元素前面的那個元素 第乙個元素 做比較,如果比它大,當然就不變動位置 但如果比它小,就將前面那個元素移動到第二個元素的位置,然後將變數的元素...