题解 | #有序序列插入一个数#
有序序列插入一个数
http://www.nowcoder.com/practice/68ae3b28b4a04e098485c4423e2c6548
#include<stdio.h>
int main(void)
{
int n;
scanf("%d",&n);
int *a=(int *)malloc(sizeof(int)*(n+1));
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
int m;
scanf("%d",&m);
int l=n-1;//用l定位m要插入的位置
while(l>=0&&a[l]>m)//如果l不越界并且相应的数组元素比m大,则继续往前比较
l--;
l=l+1;
for(int i=n;i>=l;i--)//把比m大的数,都往后挪
a[i]=a[i-1];
a[l]=m;
for(int i=0;i<=n;i++)
printf("%d ",a[i]);
return 0;
}