求救!数组 插入排序

csdndeng 2003-10-17 01:17:51
C语言编写一个程序实现插入算法,具体功能如下:

现有一个包含若干个(不少于10个)元素的整型数组,数组中的元素按照从小到大的顺序
排列,现要求用户输入一个整数,将该整数插入到该整型数组中,要求插入后的整型数组中
的元素仍然保持从小到大顺序.

算法提示:
首先查找此数组中的插入位置,然后将该位置后的所有元素依次后移一个位置,将该数插
入到空位置.如果该整数大于数组中的最后一个元素,那么直接将该整数插入到数组的末尾
..

具体要求如下:

1.数组元素不少于10个,具体数量由用户自行设定.

2.要求输出插入前的数组元素:

3.给出输入提示语句:"请输入要插入的整数:",并在输入后输出此数.

4.要求输出插入后的数组元素.
...全文
55 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
triout 2003-10-18
  • 打赏
  • 举报
回复
简单:
void Insert(int a[],int e,int count)
{
if(count==0)
a[0]=e;
else
{
int start=0,end=count;
int j;
while(start!=end)
{
j=(end+start)/2;
if(a[j]>e)
start=j;
else
end=j;
}
if(a[start]>e)
start--;
for(int i=count-1;i>start;i--)
a[i+1]=a[i];
a[i]=e;
}
}
main()
{
int * inta[2];
int eCount=0,e;
while(eCount<10)
scanf("%d",&eCount);
inta[0]=new int[eCount];
inta[1]=new int[eCount];
printf("排序前:");
for(int i=0;i<eCount;i++)
{
scanf("%d",&e);
inta[0][i]=e;
printf("%d,",inta[0][i]);
Insert(inta[1],e,i);
}
printf("\n\r\n\r排序后:");
for(int i=0;i<eCount)
{
printf("%d,",inta[1][i]);
}
}

没有调试,具体执行应该有错误,自己调试了。
micheal882 2003-10-18
  • 打赏
  • 举报
回复
不过还是可以的,我想了一下,东西不用,忘完了,我也编不出来.
micheal882 2003-10-18
  • 打赏
  • 举报
回复
刚才看了一下,好像这位大师的程序问题很多呀
poweruser 2003-10-18
  • 打赏
  • 举报
回复
晕~~~

作业也拿到这里来了

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧