我们都知道,如果散列函数被很好地选择,则哈希表对于插入和查找都具有O(1)的时间复杂度。那么,我们为什么要使用二叉搜索树呢?只是因为设计完美散列函数很难吗?
我提出这个问题的原因是:我注意到标准C ++ STL具有用二叉搜索树实现的set和map,但没有哈希(不是指非标准的hash_set,hash_map)。而Ruby只有Hash。我想了解这种差异背后的原理。
我提出这个问题的原因是:我注意到标准C ++ STL具有用二叉搜索树实现的set和map,但没有哈希(不是指非标准的hash_set,hash_map)。而Ruby只有Hash。我想了解这种差异背后的原理。