插入演算法演算法詳解及實現 c語言

2021-08-28 04:21:53 字數 1293 閱讀 1724

插入排序原理很簡單,將一組資料分成兩組,分別將其稱為有序組待插入組。每次從待插入組中取出乙個元素,與有序組的元素進行比較,並找到合適的位置,將該元素插到有序組當中。就這樣,每次插入乙個元素,有序組增加,待插入組減少。直到待插入組元素個數為0。

**實現:

#include#include#include//插入排序

void insertsort(int *array,int size);

//列印

//列印

void print(int *array, int size)

printf("\n");

}//插入排序

void insertsort(int *array, int size)

//插array[pos + 1] = k;

}}

測試檔案

#include"sort.h"

void testinsertsort()

; printf("排序前:");

//列印

print(array, sizeof(array) / sizeof(array[0]));

//插入排序

insertsort(array, sizeof(array) / sizeof(array[0]));

printf("排序後:");

//列印

關於排序的穩定性:

如果序列中有兩個元素r[i]==r[j](i!=j),若在排序之前r[i]在r[j]的前面,在排序之後r[i]依舊在r[j]的前面,則稱這個演算法是穩定的。

時間複雜度:最壞:o(n^2) 最優:o(n)

空間複雜度:o(1)-----(沒有借助輔助空間)

穩定性:穩定 (乙個元素乙個元素的插入,肯定不會跨過與自己相同的值)

適用情況:資料量少且接近有序。

插入排序演算法詳解及實現

插入排序相對氣泡排序而言是一種較為快捷方便的排序演算法。氣泡排序 插入排序原理很簡單,講一組資料分成兩組,我分別將其稱為有序組與待插入組。每次從待插入組中取出乙個元素,與有序組的元素進行比較,並找到合適的位置,將該元素插到有序組當中。就這樣,每次插入乙個元素,有序組增加,待插入組減少。直到待插入組元...

插入排序演算法詳解及實現

插入排序相對氣泡排序而言是一種較為快捷方便的排序演算法。氣泡排序 插入排序原理很簡單,講一組資料分成兩組,我分別將其稱為有序組與待插入組。每次從待插入組中取出乙個元素,與有序組的元素進行比較,並找到合適的位置,將該元素插到有序組當中。就這樣,每次插入乙個元素,有序組增加,待插入組減少。直到待插入組元...

堆排序演算法詳解及實現 c語言

堆排序原理 堆排序指的是將大堆 小堆 堆頂 即下標為0 元素與堆的最後乙個 即下標為hp size 1 元素交換,hp size 將其餘的元素再次調整成大堆 小堆 再次將堆頂 即下標為0 元素與堆的最後乙個 即下標為hp size 1 元素交換,hp size 將其餘的元素再次調整成大堆 小堆 重複...