插入排序演算法

2021-08-15 01:59:42 字數 1429 閱讀 3367

實現過程如下圖所示:

實現原理:

插入排序是基於比較的排序方法,根據比較的結果來調整元素的位置。假設陣列索引為0的元素是有序的,我們從索引為1的位置開始比較,如果索引為1的元素的值小於索引為0的元素的值,我們交換兩個元素的位置。接下來,將索引為2的元素和索引為1的元素比較,如果索引為2的元素的值小於索引為1的元素的值,交換元素,此時,再將索引為1的元素的值與索引為0的元素的值比較,如果小於,交換兩個元素的值,每一次迴圈,會將比較的當前索引之前的元素的最小值提取到陣列的最前面。

圖中宣告了乙個無序的陣列:

int

array = ;

使用插入排序演算法排序後,陣列元素順序為:

;

//插入排序演算法部分

int *insertsort(int *array, int arraysize)

else}}

return

array;

}

#include 

using

namespace

std;

int *insertsort(int*, int);

int main()

; //計算出陣列的長度

int arraysize = sizeof(array) / sizeof(array[0]);

cout

<< "初始的陣列元素為:"

<< endl;

for (auto i = 0; i < arraysize; i++)

cout

<< endl;

//宣告乙個指標,用於儲存排序後的陣列

int *sortlaterarray = insertsort(array, arraysize);

//遍歷陣列,輸出陣列中的元素

cout

<< "排序後的陣列為:"

<< endl;

for (auto i = 0; i < arraysize; i++)

return0;}

//具體的插入排序演算法,array代表將要排序的陣列

//arraysize代表排序陣列的長度

插入排序演算法

插入排序演算法 思想 把排序過程看作是序列單個有序擴充套件為整體有序的過程,即首先取序列第二個元素與第乙個元素比較,將其插入合適位置,再將第三個元素與前兩個元素比較,將其插入合適位置,如此進行,直到最後取第n個元素與前n 1個元素進行比較並將其插入合適位置。演算法 建立日期 2004 12 14 插...

演算法 插入排序

include include 插入排序 n 2為的效率。具體思想 將陣列分為兩部分,一部分是有序的,一部分為無序的 然後從無序中選取乙個數插入在有序的數中的恰當的位置,以此迭代,直到無序的數全部遍厲完畢 void insert sort int a,int n a j tmp break retu...

插入排序演算法

下面這段話摘自 一般來說,插入排序都採用in place在陣列上實現。具體演算法描述如下 從第乙個元素開始,該元素可以認為已經被排序 取出下乙個元素,在已經排序的元素序列中從後向前掃瞄 如果該元素 已排序 大於新元素,將該元素移到下一位置 重複步驟3,直到找到已排序的元素小於或者等於新元素的位置 將...