我正在考虑以下事项:
//从java中的向量中删除重复项
首先对任何快速排序算法的向量元素进行排序,例如:快速排序。这花费了O(nlogn)。然后,重复将彼此相邻。浏览已排序的向量并删除重复项。这花费O(n)。总费用:O(nlogn)。
这样做不是更好:
在HashSet中添加向量的所有元素
空矢量
将HashSet中的所有元素添加到向量
总成本将是:O(n),因为从HashSet添加到向量
我在想吗? 感谢
答案 0 :(得分:2)
正确。
关于运行时,你得到了很大的改进。当然,你在内存方面支付费用,因为你最终得到了一个向量和那个集合。
使用LinkedHashSet时,您甚至可以保留初始向量的顺序。
最后:你应该更喜欢list / ArrayList而不是旧的矢量类。