识别和删除数组中重复项的最有效方法是啥?
Posted
技术标签:
【中文标题】识别和删除数组中重复项的最有效方法是啥?【英文标题】:What is the most efficient way to identify and remove the duplicate in an array?识别和删除数组中重复项的最有效方法是什么? 【发布时间】:2015-11-10 13:22:22 【问题描述】:我有一个包含 100 万个对象的数组,它包含 1 个重复项?识别重复项并将其删除的最有效方法是什么?
【问题讨论】:
数组排序了吗? Finding out the duplicate element in an array的可能重复 【参考方案1】:如果是排序的,就从左到右,直到找到一行中的两个
平均复杂度:O(n/2)
最差复杂度:O(n)
如果它没有排序并且你有足够的内存,创建hashmap,将对象存储为键,当你按下一个键两次时,它是重复的。
平均复杂度:O(n/2)
最差复杂度:O(n)
如果它没有排序并且您没有足够的内存,请使用快速排序对其进行排序,然后使用方法 no。 1
平均复杂度:O(n*log n)
最差复杂度:O(n^2)
【讨论】:
以上是关于识别和删除数组中重复项的最有效方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章
通过聚合在pandas组中查找频繁项的最有效方法是啥[重复]