我正在编码物理模拟,我正在充分利用两个相同元素的向量(homebaked struct) . 当我试图从vec1中删除我的vec2中包含的所有元素时,一个必要的关键是减慢了我的计算机(vec2中可能还有许多这个元素的副本),我当前的实现以复杂大小运行( vec1)* size(vec2)但它似乎与排序算法相距甚远,我认为有人可能已经更快地实现了某些东西(N.log(N))来完成工作 . 你听说过/操纵过类似的东西吗?
如果向量不是有序的,则在任何情况下复杂度将等于O(m * n),其中m和n是向量的大小 .
如果项目是可散列的,那么对矢量本身进行排序比您可以实现的速度慢一些 . 从(N M)中创建一个哈希表,然后从其中一个向量中搜索项目 .
2 回答
如果向量不是有序的,则在任何情况下复杂度将等于O(m * n),其中m和n是向量的大小 .
如果项目是可散列的,那么对矢量本身进行排序比您可以实现的速度慢一些 . 从(N M)中创建一个哈希表,然后从其中一个向量中搜索项目 .