码迷,mamicode.com
首页 > 编程语言 > 详细

两个有序数组求交集

时间:2014-12-14 01:55:27      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:sp   bs   nbsp   算法   方法   函数   优化   指针   数组   

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

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

 

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

if a[i]<b[j]

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

else 

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

 

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

两个有序数组求交集

标签:sp   bs   nbsp   算法   方法   函数   优化   指针   数组   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!