【发布时间】:2011-04-20 23:31:44
【问题描述】:
当用作哈希时,JavaScript 的数组访问的大 O 是什么?
例如,
var x= [];
for(var i=0; i<100000; i++){
x[i.toString()+'a'] = 123; // using string to illustrate x[alpha]
}
alert(x['9999a']); // linear search?
希望 JS 引擎内部不会使用线性搜索 O(n),但这是肯定的吗?
【问题讨论】:
-
没有什么是“肯定的”(除非像 C++ 一样,标准定义了容器的性能特征?)但我可以保证没有浏览器使用线性搜索。如今,浏览器在 JS 基准测试中的竞争非常激烈。您可以放心,索引数组的速度将与浏览器制造商的速度一样快。
标签: javascript hash hashtable big-o