算法&大数据--(1)求交集

本文由时海分享,介绍如何求解两个整数数组的交集,探讨了暴力法、单排序后比较法、双排序后比较法和哈希表法等解法,分析了各自的时间复杂度,并提出在大数据场景下解决方案的思考。
摘要由CSDN通过智能技术生成

大家好,我是时海,熟悉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)


方法二:单排序后比较法

对数据进行排序能够提高检索速度(后续查找可以采用折半查找),尤其是后续需要重复使用这批排序

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值