当前位置: 代码迷 >> C语言 >> [讨论]大家一起讨论排序的问题
  详细解决方案

[讨论]大家一起讨论排序的问题

热度:135   发布时间:2007-01-20 15:45:20.0
[讨论]大家一起讨论排序的问题
有N个整数,按升序存放在一个数组中。要求输入一个数 并且保持数组仍然有序~~~~~
搜索更多相关的解决方案: 要求  

----------------解决方案--------------------------------------------------------

c不支持变长数组,所以要用线形表来解决.
其实很简单的


----------------解决方案--------------------------------------------------------
将该数赋予变量sum,s为数组(预先定义为(序列元素个数+1)个元素)

用for或while顺序搜索数组,遇到第一个比sum大的停止
也就是while(s[i]<sum) i++;

s[序列最大元素]到s[i]移动到s[该元素序列+1]
最后s[i-1]=sum;
----------------解决方案--------------------------------------------------------
我的做法,主函数中另建一个元素个数为N+1 的数组,其后参照以下程序
void insert(int a*,int b*,int n,int new){int i,j=0;
for(i=0;i<n+1;i++){if (a[i]>new){b[j++]=new;i--;}
else b[j++]=i;
}
}
----------------解决方案--------------------------------------------------------
以下是引用hucheng在2007-1-20 18:52:14的发言:
我的做法,主函数中另建一个元素个数为N+1 的数组,其后参照以下程序
void insert(int a*,int b*,int n,int new){int i,j=0;
for(i=0;i<n+1;i++){if (a[i]>new){b[j++]=new;i--;}
else b[j++]=a[i];
}
}

不好意思,刚才出了点错误,红色显示修正后的方案

----------------解决方案--------------------------------------------------------
顶3楼的
----------------解决方案--------------------------------------------------------
以下是引用卧龙孔明在2007-1-20 17:45:13的发言:
将该数赋予变量sum,s为数组(预先定义为(序列元素个数+1)个元素)

用for或while顺序搜索数组,遇到第一个比sum大的停止
也就是while(s[i]<sum) i++;

s[序列最大元素]到s[i]移动到s[该元素序列+1]
最后s[i-1]=sum;

能不能提供一下源程序,小生有点不明白!~!~!
----------------解决方案--------------------------------------------------------

我总觉得这样太简单了,不过我还是按三楼的思路写了个程序
#include<stdio.h>
#define N 5

main()
{
int m,i,j;//m是输入的整数
int a[N+1]={2,4,6,8,10};
scanf("%d",&m);
printf("\n");
for(i=0;i<N;i++)
if(m>a[i])continue;
else{j=i;break;}
if(j>=i)a[N]=m;
else
{for(i=N-1;i>=j;i--)
a[i+1]=a[i];
a[j]=m;
}
for(i=0;i<=N;i++)
printf("%d ",a[i]);
}
程序在turboC3.0下编译通过,并运行成功.


----------------解决方案--------------------------------------------------------
不过我还是觉得用线形表更好.
那样插入几个整数都可以.
----------------解决方案--------------------------------------------------------
输入3 ,8楼的结果是2 4 6 8 10 3 不是有序的。。
我要的结果应该是 2 3 4 6 8 10
请前辈在指点一下!~!~
----------------解决方案--------------------------------------------------------
  相关解决方案