两个有序数组求交集
2014-12-14 00:50
447 查看
采用小的在多的进行二分查找的方法。
设两个指向两个数组末尾的指针,取较小的那个数在另一个数组中二分查找,找到,则存在一个交集,并且将该目标数组的指针指向该位置前一个位置。如果没有找到,同样可以找到一个位置,使得目标数组中在该位置后的数肯定不在另一个数组中存在,直接移动该目标数组的指针指向该位置的前一个位置,再循环找,直到一个数组为空。
其实类似归并算法的merge函数,就是交替算法来填充
if a[i]<b[j]
t[num++] = a[i++];
else
t[num++] = b[j++];
这里也是,一直交替的话就能优化了
设两个指向两个数组末尾的指针,取较小的那个数在另一个数组中二分查找,找到,则存在一个交集,并且将该目标数组的指针指向该位置前一个位置。如果没有找到,同样可以找到一个位置,使得目标数组中在该位置后的数肯定不在另一个数组中存在,直接移动该目标数组的指针指向该位置的前一个位置,再循环找,直到一个数组为空。
其实类似归并算法的merge函数,就是交替算法来填充
if a[i]<b[j]
t[num++] = a[i++];
else
t[num++] = b[j++];
这里也是,一直交替的话就能优化了
相关文章推荐
- 求两个有序整型数组的交集
- 计算两个有序整型数组的交集
- 两个有序整型数组的交集
- [算法] 两个有序数组求交集
- 两个有序数组求交集
- 如何计算两个有序整型数组的交集
- 求两个有序数组的交集
- 计算两个有序数组的交集
- 两个有序数组交集与并集的实现
- 程序员面试题目总结--数组(二)【二分查找、找出给定数字出现次数、两个有序整型数组交集、找出数组中唯一的重复元素、判断数组中的数值是否连续相邻】
- 两个有序数组中的交集
- 求两个集合的交集以及求两个有序数组并集的第k小元素
- 如何计算两个有序整型数组的交集
- 求两个有序整型数组的交集
- 如何计算两个有序整型数组的交集
- c++之数组篇2:计算两个有序数组的交集
- 如何计算两个有序整型数组的交集
- 如何计算两个有序整型数组的交集
- 如果求有序数组的交集
- 两个有序数组求中位数