最快的方法从另一个元素中删除矢量的所有元素

时间:2013-11-27 19:05:44

标签: c++ sorting vector

我正在编码物理模拟,我正在充分利用两个相同元素的向量(homebaked struct)。当我试图从vec1中删除我的vec2中包含的所有元素时,一个必要的关键是减慢了我的计算机(vec2中可能还有许多这个元素的副本),我当前的实现以复杂大小运行( vec1)* size(vec2)但它似乎与排序算法相距甚远,我认为有人可能已经更快地实现了某些东西(N.log(N))来完成工作。你听说过/操纵过类似的东西吗?

2 个答案:

答案 0 :(得分:0)

如果向量没有排序,那么在任何情况下,复杂度将等于O(m * n),其中m和n是向量的大小。

答案 1 :(得分:0)

如果项目是可散列的,那么自己对矢量进行排序的速度要慢一些。它需要(N + M)从其中一个向量创建一个哈希表,然后在其中搜索另一个项目。