0
点赞
收藏
分享

微信扫一扫

有序序列中插入一个整数

静悠 2022-09-05 阅读 69

  在一个有序的数组中找到要插入元素应该在的位置时,该位置后面的元素都要统一往后移,给要插入的元素留出位置。要注意的是,后移时最后一个元素先移动,然后倒数第二个移动,依次类推。。。

有以下两种做法:

#include<stdio.h>
int main()
{

int n,i;
scanf("%d",&n);
int a[51];
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);

}
int x,t;
scanf("%d",&x);
if(x>=a[n-1])
{
a[n]=x;
n++;
}
else
{
for(i=0;i<n;i++)
{
if(x<=a[i])
{
t=i;
break;
}
}
for(i=n-1;i>=t;i--)
{
a[i+1]=a[i];
}
a[t]=x;
n++;
}
for(i=0;i<n;i++)
{printf("%d ",a[i]);}

}

#include<stdio.h>
int main()
{

int n,i;
scanf("%d",&n);
int a[51];
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);

}
int x;
scanf("%d",&x);
for(i=n-1;i>=0;i--)
{
if(x<=a[i])
{
a[i+1]=a[i];
}
else
{
a[i+1]=x;
break;
}
}
for(i=0;i<=n;i++)
{printf("%d ",a[i]);}

}

举报

相关推荐

0 条评论