我有一个未排序的列表,我想从中删除重复项。在C中执行此操作最有效。在我的例子中,列表是一个链接的数组列表。换句话说,几个数组连接在一起。重复只能发生在不同的阵列中。因此,例如阵列1中不能有重复,但在阵列1和2中可以找到相同的编号。从列表中删除重复元素的最有效方法
回答
这基本上是对Element Distinctness Problem的修改。链接经历了几种可能的解决方案。
一个常见而简单的解决方案是对列表进行排序并对排序列表进行传递,删除任何重复项。这会给你一个O(n * log(n))算法
如果你使用散列表,你可以做得更好(O(n))。浏览数组,将每个元素插入散列表中。如果遇到碰撞,您可能已经找到了重复,并且可以对这两个元素进行快速比较。
哈希表中的冲突并不意味着重复,只是一个'候选'重复。 – deStrangis
@deStrangis是的,好点。我已经说得更清楚了。 – Oleksi
哈希表中的碰撞更多的是不重复的机会,当然这取决于哈希函数,但它们都具有雪崩效应 – jackdoe
- 1. 从数组中删除唯一元素的最有效方法
- 2. 删除列表中的重复元素
- 3. 从表中删除所有重复行的最有效方法是什么?
- 4. 有效的方法从Python中删除列表中的每个元素
- 5. Java 8 - 从列表中删除重复的元素序列
- 6. 如何从Scheme的列表中删除非重复的元素?
- 7. 从排序的链接列表中删除重复的元素
- 8. 从列表中删除空列表的有效方法?
- 9. 如何从列表中删除重复的无序元素?
- 10. 如何从numpy数组列表中删除重复的元素?
- 11. 从python列表中删除重复的元素
- 12. 删除列表中的重复项的最快方法Python
- 13. 删除元素,并从列表中删除下列元素
- 14. 删除字典列表中重复值的最佳方法?
- 15. 最有效的方法来删除重复
- 16. 最有效的方法来合并数组删除重复
- 17. 根据最高值从元组列表中删除重复项
- 18. 从数据表中删除重复条目的最佳方法
- 19. WPF:从绑定列表中删除最后一项的最有效方法?
- 20. 删除重复的元素
- 21. 删除重复的元素
- 22. 从同步列表中删除元素的正确方法
- 23. 从Perl列表中删除元素的安全方法?
- 24. 简单的方法来从列表中删除元素在Python
- 25. 从元组列表中删除元素
- 26. 从列表中删除重复项的C#方法<T>
- 27. 从SQL Server表中删除重复行的更简单,更有效的方法
- 28. 如何从序列中的列表中删除重复的元素?
- 29. 列表方法删除列表中的最后一个元素以及所有元素
- 30. 从html表单添加和删除元素的最佳方法
什么样的列表?链表?或者你的意思是一个数组?什么是数据项目?你如何确定平等? – unwind
是数组集?如果不是不插入重复到它 – Thomas