插入排序
設計思路:
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 完成上述操作,直到排序完畢 注 為什麼要從後往...