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

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

 

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

if a[i]<b[j]

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

else 

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

 

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

相关文章:

  • 2021-07-22
  • 2021-11-10
  • 2022-12-23
  • 2021-07-01
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-23
猜你喜欢
  • 2021-07-29
  • 2021-10-30
  • 2021-07-16
相关资源
相似解决方案