大家好?想请教一个查找数组的算法,高手请进~~~

一个int数组int [ ] = {1,2,3,4,5,8,10,11,12,20}
最后得到这样的形式,1-5,8,10-12,20
有什么好的办法,当然数据很大,算法速度优先

第1个回答  2011-10-14
你确定
1-5
下一个
8
下一个
10-12
下一个
20
???????????
第2个回答  2011-10-14
我猜是你想要遍历数据,找出其中连续的范围吧,我写了一个,你可以试一下
int ary[10] = {1,2,3,4,5,8,10,11,12,20};
int srindex = 0;
for(int i=0;i<sizeof(ary)/sizeof(int);i++)
{
if(ary[i] - ary[srindex] > i-srindex)
{
if(i-1 == srindex)
cout<<ary[srindex]<<endl;
else
cout<<ary[srindex]<<"-"<<ary[i-1]<<endl;
srindex = i;
}
if(i==9)
{
if(i == srindex)
cout<<ary[srindex]<<endl;
else
cout<<ary[srindex]<<"-"<<ary[i]<<endl;
}
}追问

看完了,基本没问题,不知道你的思路是什么啊?
怎么想到的这个逻辑,想探讨一下。

第3个回答  2011-10-18
如果数组已经是排序好了的,那算法应该很简单。
可以自己尝试写一个,是否需要考虑重复数据?

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网