排序 3 C 插入排序

2021-10-09 20:23:05 字數 685 閱讀 8180

插入排序的其中一種-----直接插入排。時間複雜度為o(n^2),空間複雜度為o(1).是一種穩定的排序方法。

比如有資料:3,6,2,8,5;

1.首先將資料3當成乙個有序陣列,然後將6插入有序陣列中,結果;

2.然後將資料2插入有序陣列中,即;

3.然後將資料8插入有序陣列中,即;

4.然後將資料5插入有序陣列中,即.

觀察上述例題,總結方法,然後將演算法總結出來。

插入排序示意圖:

**如下:實現的時候,i代表總共迴圈插入size次,每一次插入的時候,都是將第i個資料與前面的所有比較,所以從i+1開始迴圈到0下標,然後找到位置插入有序佇列中。

#include #include using namespace std;

//插入排序

void charu_sort(vector& vector1, int size)

} }}int main()

charu_sort(vector1, size);

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

cout << endl;

return 0;

}

排序演算法3 插入排序

插入排序 insertion sort 通過對未排序的元素逐個插入已排序的合適的位置而完成排序工作,其排序流程如下 1.對陣列的前兩個元素進行排序。2.將第三個元素和前兩個已經排好序的元素進行比較,並且插入到合適的位置。3.和第二步同樣的方法對剩下的所有元素進行排序,最後便可得到按照從大到小的順序排...

排序演算法3 插入排序

該演算法維護乙個有序序列,然後把無序序列中的元素,在有序序列中從後往前進行掃瞄,找到位置後插入。從乙個元素開始,該元素可以認為已經被排序好的。在有序序列從後往前掃瞄的過程中,也要將已排序的元素逐個後移,為新插入的元素提供位置 插入排序 public class insertsort for int ...

插入排序C

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