首页 > 编程语言 > 详细

两个有序数组求交集

时间:2014-12-14 01:52:24      阅读:291      评论:0      收藏:0      [点我收藏+]

采用小的在多的进行二分查找的方法。

设两个指向两个数组末尾的指针,取较小的那个数在另一个数组中二分查找,找到,则存在一个交集,并且将该目标数组的指针指向该位置前一个位置。如果没有找到,同样可以找到一个位置,使得目标数组中在该位置后的数肯定不在另一个数组中存在,直接移动该目标数组的指针指向该位置的前一个位置,再循环找,直到一个数组为空。

 

其实类似归并算法的merge函数,就是交替算法来填充

if a[i]<b[j]

    t[num++] = a[i++];

else 

    t[num++] = b[j++];

 

这里也是,一直交替的话就能优化了

两个有序数组求交集

原文:http://www.cnblogs.com/juandx/p/4162141.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!