求一个高速的算法

jill_yang 2000-07-14 10:58:00
加精
我有两个数组,两个数组均有序,从小到大,一个数组记录“中”字在一篇文章中的偏移地址,另一个记录“国”字在一篇文章中的偏移地址,例A[]是记录“中”字偏移地址的数组,A[0]=1,A[1]=6,B[]是记录“国"字的数组,假设两个数组的大小都已知,现在要得出一个数组记录包含“中国”这个词在文章中的偏移地址,这个算法速度越快越好
...全文
326 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
one_add_one 2001-08-12
  • 打赏
  • 举报
回复
gz
one_add_one 2001-08-12
  • 打赏
  • 举报
回复
gz
gqxs 2001-06-12
  • 打赏
  • 举报
回复
关注
guoqy 2000-07-26
  • 打赏
  • 举报
回复
int i=0,j=0,k=0;
//定义结果数组c[]
while(i<A数组的大小&&j<B数组的大小)
{
if( A[i] + 2 == B[j] )
{
// 找到,进行处理
// .....
c[k++]=A[i];
i+=2;
j+=2;
}
else if( A[i] + 2 < B[j] )
{
for(;A[i]+2<B[j];i=i+2);//这里有个分号
i+=2;
}
else
{
for(;A[i]+2<B[j];j=j+2);//这里有个分号
j+=2;
}

}
jbzheng 2000-07-21
  • 打赏
  • 举报
回复
应该是在循环条件处加上j的范围判断
jbzheng 2000-07-21
  • 打赏
  • 举报
回复
我错了!
jbzheng 2000-07-21
  • 打赏
  • 举报
回复
hyzx2000的程序中还应该加上一层j的循环吧!
hyzx2000 2000-07-14
  • 打赏
  • 举报
回复
int i=0,j=0;
while(i<A数组的大小)
{
if( A[i] + 2 == B[j] )
{
// 找到,进行处理
// .....
i ++;
j ++;
}
else if( A[i] + 2 < B[j] )
{
i ++;
}
else
{
j ++;
}
}

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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