插入排序演算法

2021-07-22 09:46:08 字數 983 閱讀 6381

假設我們輸入的是 「5,1

,4,2

,3」 我們從第二個數字1開始,看1有沒有正確的位置,將1和左邊的數字比較。因此我們比較1和5,1比5小,所以我們就交換1和5,原來的排列就變成了「1,5

,4,2

,3 」

接下來,我們看第三個數字有沒有在正確的位置。這個數字是4,temp=4,它的左邊數字是

5,4比5小,將5賦值給第三個數,排列變成了 「1,5,5,2,3 ",繼續看第二個數字的左邊,數字為1,比temp小,則把temp賦值給第二個數字,排列變成「1,4

,5,2

,3 "。

再來看第四個數字,這個數字是2,我們將2和它左邊的數字相比,都比2大,所以就將2一路往左移動,一直移到2的左邊是1,這時候排序變成了 「1,2

,4,5

,3 」

最後,我們檢查第五個數字,這個數字是3,3必須往左移,一直移到3的左邊是2為止,所以我們的排列就變成了「1,2

,3,4

,5 」排序因此完成了。

所謂插入排序法,就是檢查第i個數字,依次遍歷它左邊的數字,直到找到最後乙個比它小的元素target,然後把它插入到target前面(注意每一次遍歷時,比它大的元素都需要往後移動,即要執行list[in] = list[in - 1]這條語句)

#includeusing namespace std;

//插入排序演算法,n是元素個數,按從小到到順序排序

void insertionsort(int list, int n)

list[in] = temp;//將temp插入到對應的位置,完成一次插入排序 }}

int main()

; insertionsort(a, 5);

for (int k = 0; k < 5; k++)

cout << a[k] << " ";

system("pause");

return 0;

}

插入排序演算法

插入排序演算法 思想 把排序過程看作是序列單個有序擴充套件為整體有序的過程,即首先取序列第二個元素與第乙個元素比較,將其插入合適位置,再將第三個元素與前兩個元素比較,將其插入合適位置,如此進行,直到最後取第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,直到找到已排序的元素小於或者等於新元素的位置 將...