採用先確定數字然後找位置的方法。
每次把最前面或最後面的沒有排好序的數字插入到已經排好序的數字中間合適的位置上。
不斷把選擇好的數字和相鄰的數字做順序調整,直到它被放在合適的位置上。/*
* 插入排序
* */
#include
void insert_sort(int *p_num, int size)
int num = 0, num1 = 0, tmp = 0;
for (num = 1;num <= size - 1;num++)
//每次迴圈要把下標為num的儲存區內容插入到前面合適的位置上
for (num1 = num - 1;num1 >= 0;num1--)
//把下標為num1和num1+1兩個儲存區里的內容做順序調整
if (*(p_num + num1) > *(p_num + num1 + 1))
tmp = *(p_num + num1);
*(p_num + num1) = *(p_num +num1 + 1);
*(p_num + num1 + 1) = tmp;
else
break;
int main()
int arr = ;
int num = 0;
insert_sort(arr, 7);
for (num = 0;num <= 6;num++)
printf("%d ", arr[num]);
printf("\n");
return0;
插入排序(c語言)
插入排序的基本思想是 每步將乙個待排序的紀錄,按其關鍵碼值的大小插入前面已經排序的檔案中適當位置上,直到全部插入完為止。插入排序示例 void printfbuff datatype a,size t n 列印陣列 printf n void insertsort datatype a,size t...
C語言 插入排序
實現 精簡 插入排序的基本操作就是將乙個資料插入到已經排好序的有序資料中,從而得到乙個新的 個數加一的有序資料,演算法適用於少量資料的排序,時間複雜度為o n 2 實現過程 為了比較容易地理解插入排序,我們可以列出一組資料,比如 1,5,4,3,7 我列出了兩種方法分別說明插入排序的實現過程,你可以...
C語言 插入排序
include 插入排序 當一列已經有序,再有加入的資料時,適合使用插入排序,它是一種簡單直觀且穩定的演算法 不需要交換 void insert sort int arr,size t len 當前面沒有大於t的數時跳出迴圈 arr k t 將t插入此時的位置 void show arr int a...