大家好,我是时海,熟悉java后台开发、大数据开发,该系列文章将找一些有趣的算法题目,针对少量数据集和海量数据分别寻找解决方案,也欢迎大家多多指教!
题目:
- 求两个整数数组的交集,如下:
- int[] array1={2,6,3,9,4}
- int[] array2={4,7,9,1}
- array1,array2数组长度分别为N,M
- 交集为:{4,9}
解法:
方法一:暴力法
暴力法是最简单,最粗暴的解法。在这个 硬件成本越来越低,机器配置越来越高,时间成本越来越贵的年代,
很多简单一次性的任务不妨使用暴力算法试一下。笔者一直信奉没有最好的解决方案,只有适合的解决
方案,快速简单解决问题才是王道。
用array1中的每个元素分别于array2中的元素逐个比较。
For item1<-array1
For item2<-array2
If item1==item2 Then print item1
总的时间复杂度为O(N*M)
方法二:单排序后比较法
对数据进行排序能够提高检索速度(后续查找可以采用折半查找),尤其是后续需要重复使用这批排序