C 插入排序

2021-09-25 15:52:29 字數 1028 閱讀 8343

c++插入排序

開發工具與關鍵技術:c++、visualstudio
插入排序和氣泡排序有一點相似,但是它們是完全不同的兩種排序方式,插入排序的方式是這樣的,例如有乙個三個元素的陣列排序順序是1,0,3我們是公升序排序方式,元素1我們不管它,元素0我們就拿出來和元素1比較這時元素0比元素1小,元素1往後移一位,元素0放到元素元素1原來的位置,元素3在和元素1比較,3比1大就不需要再比。

下面是例子和結果截圖

#include

using namespace std;

//插入排序演算法(公升序排列)

void insertionsort(int *array, int len);

//主方法

int main()

;cout << 「排序前:」;

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

cout << endl;

insertionsort(arr, 10);

cout << 「排序後:」;

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

cout << endl;

return 0;

}//插入排序演算法(公升序排列)

void insertionsort(int *array, int len)

else

}// 填坑

上面的那個基準數的意思就是第幾個位置的數,坑的位置的意思就是基準數的位置,就有這兩個所以這是插入排序而不是氣泡排序,上面i從1開始是因為插入排序是後面的和前面的比而不是前面的和後面的比,而比如說元素0是基準數,坑是2,當元素0比元素2小,那麼元素2移到坑的位置,然後再更新坑的位置,再和元素1比還是小對吧,那麼同樣元素1移到坑的位置,然後元素0前面就沒有元素了那麼這一次內迴圈結束,i++後i=3了,基準數重新整理,繼續迴圈,這就是插入排序演算法

插入排序C

變數 i 1.代表待插入數字的下標 preindex.代表前乙個元素的下標 length.代表陣列的長度 排序過程 arr 0 跳過,從arr 1 開始,每乙個數都和它前面的數字比較。while iarr i 那麼前大後小,亂序 arr preindex 1 current i include us...

c 插入排序

從整個待排序列中選出乙個元素插入到已經有序的子串行中去,得到乙個有序的 元素加一的子串行,直到整個序列的待插入元素為0,則整個序列全部有序。在實際的演算法中,我們經常選擇序列的第乙個元素作為有序序列 因為乙個元素肯定是有序的 我們逐漸將後面的元素插入到前面的有序序列中,直到整個序列有序。簡單插入排序...

C 插入排序

插入排序思想 將陣列分成兩組,第乙個陣列值為一組並認為該陣列為有序的,並從後面陣列n 1個數中逐個選擇與已經有序的陣列進行比較,插入到已經排序好的陣列中,直至陣列中的所有陣列有序排列為止。這樣的話,n個元素需要進行n 1趟排序!陣列a length 10 i 1,j 0,a j 1 1i 1,j 1...