在一个已经排好序(由小到大)的数组中查找待插入数据x应插入的位置,使其插入后,数组元素仍保持由小到大的顺序。
样例:
#include <stdio.h>
#define N 20
void Insert(int a[],int n,int x)
{
int pos,i;
for(i = 0;(i < n)&&(x > a[i]);i++)
{
}
pos = i;
for(i = n-1;i >= pos;i--)
{
a[i+1] = a[i];
}
a[pos] = x;
}
int main()
{
int a[N],x,i,n;
printf("Please enter n(n<=16):");
scanf("%d",&n);
printf("Please enter array:\n");
for(i = 0;i < n;i++)
{
scanf("%d",&a[i]);
}
printf("Please enter x:");
scanf("%d",&x);
Insert(a,n,x);
printf("After insert %d:\n",x);
for(i = 0;i < n+1;i++)
{
printf("%-4d",a[i]);//4d前的负号用于控制输出数据左对齐
}
printf("\n");
return 0;
}