插入排序算法

 1 #include <stdio.h>
 2 
 3 int *insertion(int *array, int n);
 4 void printf_array(int *array, int n);
 5 
 6 int main()
 7 {
 8     int a[10] = {101, 79, 88, 37, 56, 45, 64, 39, 82, 11};
 9     insertion(a,10);
10 
11     printf_array(a,10);
12 
13 }
14 
15 
16 int *insertion(int *array, int n)
17 {
18     int i;
19     int j;
20     int key;
21     for(i = 1; i < n; i ++)
22     {
23         key = array[i];
24         j = i - 1;
25         while ((j >= 0) && (array[j] > key))
26         {
27             array[j + 1] = array[j];
28             j --;
29         }
30         array[j+1] = key;
31     }
32     return array;
33 }
34 
35 
36 void printf_array(int *array, int n)
37 {
38     int i = 0;
39     for (i; i < n; i ++)
40     {
41         printf("%d ",array[i]);
42     }
43     printf("
");
44 }

算法导论 第三版 第二章介绍的 第一个算法 插入排序

C语言实现代码

插入排序是基础中的基础

据这本书说

原文地址:https://www.cnblogs.com/wangzefeng/p/5441852.html