插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。

图例:

基础排序算法 – 插入排序Insertion sort_第1张图片

 

C语言代码:

   
   
   
   
  1. #include  
  2. int main() 
  3.     int a[5]={5,4,3,2,1},i; 
  4.   
  5.     printf("原本的数字为:"); 
  6.      for(i=0;i<5;i++) 
  7.     { 
  8.         printf("%d ",a[i]); 
  9.     } 
  10.     printf("\n"); 
  11.   
  12.     void insert (int a[],int n); 
  13.     insert (a,5); 
  14.   
  15.     printf("插入法排序后:"); 
  16.     for(i=0;i<5;i++) 
  17.     { 
  18.         printf("%d ",a[i]); 
  19.     } 
  20.     return 0; 
  21.   
  22. //插入法 
  23. void insert(int a[],int n) 
  24.     int i,j,temp; 
  25.     for(i=1;i
  26.     { 
  27.         temp=a[i];//temp为要插入的元素 
  28.         j=i-1; 
  29.         while(j>=0&&temp//从a[i-1]开始找比a[i]小的数,并把数组元素后移 
  30.         { 
  31.             a[j+1]=a[j]; 
  32.             j--; 
  33.         } 
  34.         a[j+1]=temp;//插入 
  35.     } 

引用:http://www.cnblogs.com/kkun/archive/2011/11/23/2260265.html