2013-04-06 53 views
1

我想查找是否存在重複的2d向量表。我可以看到很多使用獨特的STL算法去除重複的程序。對於100,000條記錄,找到「重複與否」是最好的方法。在2D中查找重複向量字符串

+3

搜索可能是有保證的。這將需要一些代碼。那麼到目前爲止你有什麼? – WhozCraig 2013-04-06 05:21:37

+0

你想在'std:vector'中允許重複的元素,然後再刪除它們嗎?如果你根本不想重複元素,可以考慮使用'std:set' – OGH 2013-04-06 05:26:29

回答

0

我會對此表進行排序,然後使用二分查找搜索dups。這將是O(n^2 log n)的複雜性。對於這樣的排序比較:

p1.x < p2.x || (p1.x==p2.x && p1.y < p2.y) 

大多數人會告訴你使用哈希表這一點,但哈希表在最壞的情況下O(n^2)施工時間。所以總的複雜性將是O(n^3)

相關問題