是否必须使用数组实现哈希表?替代数据结构是否会实现相同的效率?如果是,为什么?如果不是,数据结构必须满足什么条件才能确保数组提供的效率相同?
答案 0 :(得分:2)
是否必须使用数组实现哈希表?
没有。您可以在arrray旁边的其他数据结构中实现HashTable
接口。例如。一棵红黑树(java的TreeMap)
这提供了O(logN)
访问时间
但Hash Table
预计会有O(1)
个访问时间(最好的情况是没有碰撞)
这只能通过一个阵列来实现,该阵列提供了在恒定时间内随机访问的可能性。
数据结构必须满足什么条件才能确保相同 数组提供的效率?
必须具有与阵列相当的性能(小于O(N)
)。对于所有操作
O(logN)