#include<stdio.h>
#include<stdlib.h>
void InsertSort(int a[],int n)
{    int i,j,temp;
    for(i=1;i<n;i++)
    {
        j=i;
        temp=a[i];
    while(j>=0&&temp<a[j-1])
        {
            a[j]=a[j-1];
            j--;
        }
    a[j]=temp;
    }
    
}
void Print(int a[],int n)
{
    int i;
    for(i=0;i<n;i++)
    {
        printf("%5d",a[i]);
    }
}
int main(void)
{
  int *a;
  int n,i;
  printf("请输入数组长度n= ");
  scanf("%d",&n);
  a=(int*)malloc(n*sizeof(int));
  printf("输入数组= ");
  for(i=0;i<n;i++)
  {
    scanf("%d",&a[i]);
  }
   InsertSort(a,n);
   Print(a,n);
   return 0;
}
插入排序
原文:http://blog.51cto.com/13645380/2097534