插入排序

确定一个关键字key,从右向左逐一比较,直到找到序列中key的正确位置结束。

#include<stdio.h>
int a[10000];
int main()
{
  int i,j,key,n,temp;
  while(scanf("%d",&n)!=EOF)
  {
    if(n==0) break;
    for(i=0;i<n;i++)
      scanf("%d",&a[i]);
    for(j=1;j<n;j++)
    {
      key=a[j];
      i=j-1;
      while(i>=0&&a[i]>key)
      {
        a[i+1]=a[i];
        i=i-1;
      }
      a[i+1]=key;
    }
    for(i=0;i<n;i++)
      printf("%d ",a[i]);
    printf("\n");
  }
  return 0;
}

posted on 2017-01-13 18:30  Tsn_Tse  阅读(99)  评论(0编辑  收藏  举报

导航