`
zengshaotao
  • 浏览: 756956 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

求数据重复的记录

 
阅读更多

假定一个int数组,里面数据很大,有一项是重复的,如何找到重复的项。

 

方法一,那就是遍历数据,假定数据项为n,那么复杂度是O(n)的平方

 

方法二,将数据加入到另外的集合当中,相同的项add时返回false。复杂度实际上是一个加和的结果,即数据的遍历+数据添加时集合的遍历,这里我们无法清楚判断集合遍历的复杂度,不过比我们自身设计的双层循环要好,但是这额外增加了新的空间,其相对方法一赢得的速度,也就是时间上的代价很大一部分是靠新增的空间来达到的。

 

方法三,对数据进行排序,假定升序。则任意不重复的两项的差值不等于0,重复的项是相邻的,差值当然就等于0,以此可得到结果

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics