排序之基於陣列插入排序

2021-07-11 23:15:23 字數 659 閱讀 4912

有n個元素,其中前m個已經有序,後n-m個是無序狀態,使用選擇排序毫無意義,於是使用一種新的方法插入排序。

設有乙個陣列list如下:

list={10,18,25,30,23,17,45,35};

list[4]應該插入list[1]和list[2]之間,先把list[4]->temp,list[2]和list[3]後移,再temp->list[2]。

我們在排序過程中,把整個陣列分為兩個部分,前面有序的一部分和後面無序的一部分,把無序的部分插入有序的部分。

對於任意的乙個無序表,我們把無序表第乙個數的index設為1即,firstoutoforderindex=1;通過第一次插入,由元素0和1組成了乙個有序表,2~n成了乙個無序表,進行插入排序。

void insertsort()

}

以下是基於陣列的插入排序具體實現

#include using namespace std;

int main()

; for(int firstoutoforderindex=1;firstoutoforderindex<10;firstoutoforderindex++)

}for(int i=0;i<10;i++)

cout<

排序之插入排序

基本思想 每次將乙個待排序的記錄,按其關鍵字大小插入到前邊已經排好序的子陣列中的適當位置,知道全部記錄插入完成為止。分類 直接插入排序和希爾 shell 排序。一 直接插入排序 基本操作 將當前無序區的第乙個記錄r i 插入到有序區r 1.i 1 中適當的位置,使得r 1.i 變為新的有序區。每次使...

排序之插入排序

本人是純正的蒟蒻。寫這些部落格目的是為了複習一些基礎知識,同時也幫助一下比我還要弱的蒟蒻 估計沒有 排序 排序有很多種,這裡先介紹幾種最基本,最簡單的。一.插入排序 主要思想 假設前面n個元素已經有序排列,現在要插入乙個元素,使這n 1個元素有序,先在原有序列中找到應該插入的位置,然後把這個位置的數...

排序之插入排序

插入演算法 迴圈陣列,以指標資料為基值 並且記錄,通過和左側 右側 的迴圈比較,當比較值大於 小於 基值時 將大的值至後,指標繼續移動,比較,置換。直到遇到小於基值,或者到陣列邊界時截止,並且置換至首位。結束一次內迴圈,這是外迴圈的指標左側的是有序。class sort public static ...