插入排序 資料結構

2021-08-20 10:07:39 字數 947 閱讀 3025

插入排序

設計思路:

1.判斷陣列元素個數,如果資料元素個數小於等於1,無需進行排序,直接返回;

2.若陣列元素個數大於1,設定邊界下標值bound = 1,將整個陣列分為倆個陣列部分,一部分為有序陣列,另一部分為無序陣列;

3.再定義乙個下標值cur = bound,將下標為cur的所指陣列元素與有序陣列的元素進行比較,在陣列中找到合適的位置;

4.首先將下標為cur的元素使用將有序陣列中大於bound_value進行儲存,然後將大於bound_value的元素從後向前依次向後移動乙個元素,最後將bound_value插入合適的位置,並將bound++進入下一輪的迴圈;

5.當bound等於陣列元素個數值size時,迴圈結束;

6.此時的陣列就是乙個有序陣列。

插入函式程式**:

//插入函式

void insertsort(int array,size_t size)

if(size <= 1)

size_t bount = 1;

for(;bount0;--cur)else

}array[cur] = bount_value;

}return;

}

測試用例程式**:

void testinsertsort();

size_t size = sizeof(array)/sizeof(array[0]);

int i = 0;

for(;i測試結果顯示:

氣泡排序,插入排序,插入排序 資料結構與演算法之美

氣泡排序 氣泡排序只會操作相鄰的兩個資料。每次冒泡操作都會對相鄰的兩個元素進行比較,看是否滿足大小關係要求,如果不滿足就讓它倆互換。穩定性 氣泡排序是穩定的排序演算法。空間複雜度 氣泡排序是原地排序演算法。時間複雜度 最好情況 滿有序度 o n 最壞情況 滿逆序度 o n 2 package com...

資料結構 插入排序

演算法中經常會用到各種各樣的演算法,比較簡答的思想就是氣泡排序,一般剛開始程式設計時遇到排序問題時,會很容易想到冒泡排,氣泡排序是通過兩輛比較數值,從而將數字移動到開始或者末尾的位置,反覆重複這個過程從而就達到了排序的目的。其時間複雜度大概是 n2 還有一種比較常用的插入排序,其思想與氣泡排序比較類...

資料結構 插入排序

一 直接插入排序 1 直接插入排序的演算法思想 r i 的鍵值ki與r 0 r i 1 的鍵值依次比較 從後往前比 找到r i 應插入的位置,並把從該位置開始的記錄後移乙個位置,把r i 插入到找到的插入位置,完成一趟直接排序 重複選r i 1 r n 完成上述操作,直到排序完畢 注 為什麼要從後往...