首页 > 技术文章 > 插入排序

TsnTse 2017-01-13 18:30 原文

确定一个关键字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;
}

推荐阅读