【发布时间】:2011-11-19 23:17:09
【问题描述】:
这是一个非常幼稚的问题,但我找不到明确的讨论。 每个人都同意对只有 10 个元素的地图容器使用哈希是过大的。有序地图会快得多。一百;一千等地图应按 logN 缩放,其中 N = 地图中的对数。所以对于一千,它需要三倍的时间;一百万,六倍; 100亿,长九倍。
当然,我们被引导相信一个设计良好的散列容器可以在 O(1)(恒定)时间与 O(logN) 时间内搜索排序容器。但是隐含的常数是什么?哈希图在什么时候将地图丢失在尘埃中?特别是如果key是整数,key搜索的开销很小,所以map中的常量会很小。
尽管如此,几乎每个人都认为散列容器更快。已经进行了大量的实时测试。
发生了什么事?
【问题讨论】:
-
哎呀,十倍长....不是说它有多大区别
-
你使用了错误的日志——对于基于二叉树的地图,应该是基数 2 而不是基数 10...