我有一个包含100万个对象的数组,它包含1个副本?识别副本并将其删除的最有效方法是什么?
答案 0 :(得分:0)
如果它已排序,只需从左向右移动,直到找到其中两行
平均复杂度:O(n / 2)
最糟糕的复杂性:O(n)
如果它没有排序并且你有足够的内存,创建hashmap,将对象存储为键,当你按两次键时,它就是重复的。
平均复杂度:O(n / 2)
最糟糕的复杂性:O(n)
如果没有排序且内存不足,请使用quicksort对其进行排序,然后使用方法号。 1
平均复杂度:O(n * log n)
最糟糕的复杂性:O(n ^ 2)