什么数据结构在时间和空间上都有效地支持以下集合操作?
- 联盟
- 不同之处
- 成员
- 添加
- 删除
我可以想到 3 种不同的方法来执行这些操作,假设我们有两个集合,它们的大小都是 N:
位数组:
1. O(N) 2.O(N) 3.O(1) 4.O(1) 5.O(1)
哈希表:
1. O(N) 2.O(N) 3.O(1) 4.O(1) 5.O(1)
有序树:
1. O(NlogN) 2.O(NlogN) 3.O(logN) 4.O(logN) 5.O(logN)
Bit Array 和 HashTable 速度快但占用内存过多,Ordered Tree 速度慢但占用内存少。
请注意:该集合可能包含除整数以外的其他类型,例如浮点数或字符串
还有哪些数据结构既快速又通用,又节省空间?