您的位置:首页 > 其它

两个有序数组求交集

2014-12-14 00:50 447 查看
采用小的在多的进行二分查找的方法。

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

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

if a[i]<b[j]

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

else

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

这里也是,一直交替的话就能优化了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: