要求/约束:
- 只删除重复项
- 保留一份
- 列表最初没有排序
这在 C 中如何实现? (算法和/或代码将不胜感激!)
最佳答案
如果列表很长并且您想要合理的性能并且您可以分配额外的 log(n) 内存,您可以使用 qsort 或归并排序对 nlog(n) 进行排序:
http://swiss-knife.blogspot.com/2010/11/sorting.html
然后可以去掉n中的重复项(总数是:nlog(n) + n)
如果你的列表非常小,你可以像 jswolf19 建议的那样做,你会得到:n(n-1)/2 最差。
关于c - 如何从链表中删除重复的奇数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4976765/