JavaScript 访问对象 属性 的 运行 时间复杂度 O(?) 是多少?
What is the run time complexity O(?) for JavaScript to access an object property?
var obj = {};
obj["A"] = true;
obj["B"] = true;
obj["C"] = true;
console.log(obj["D"]);
以上代码将打印"undefined"。 javascript 尝试访问 obj["D"] 时的运行时复杂度是多少?我猜它会和它试图访问 obj["A"]?
一样
我之所以这样问是因为我在比较这两个代码的效率:
//Code 1
var x = ["a","b","c"];
var y = ["a","b","c"];
for(i = 0; i<x.length; i++){
for(j = 0; j<y.length; j++){
console.log(i==j);
}
}
//Code2
var _x = {};
var _y = ["a", "b", "c"];
_x["a"] = true;
_x["b"] = true;
_x["c"] = true;
for(i = 0; i<_y.length; i++){
if(_x[_y[i]] != undefined){
console.log("something");
}
}
我想知道哪个在运行时复杂性方面更有效。
我想如果访问一个对象 属性 需要 O(n),那么这两个代码的运行时间会相同吗?
Javascript 语言对操作的时间复杂度没有任何要求,因此性能将取决于您使用的 Javascript 解释器。
(在某些情况下,它甚至可能无法修复;大多数现代 Javascript 解释器执行运行时优化,这可能会改变操作的时间复杂度。)
var obj = {};
obj["A"] = true;
obj["B"] = true;
obj["C"] = true;
console.log(obj["D"]);
以上代码将打印"undefined"。 javascript 尝试访问 obj["D"] 时的运行时复杂度是多少?我猜它会和它试图访问 obj["A"]?
一样我之所以这样问是因为我在比较这两个代码的效率:
//Code 1
var x = ["a","b","c"];
var y = ["a","b","c"];
for(i = 0; i<x.length; i++){
for(j = 0; j<y.length; j++){
console.log(i==j);
}
}
//Code2
var _x = {};
var _y = ["a", "b", "c"];
_x["a"] = true;
_x["b"] = true;
_x["c"] = true;
for(i = 0; i<_y.length; i++){
if(_x[_y[i]] != undefined){
console.log("something");
}
}
我想知道哪个在运行时复杂性方面更有效。 我想如果访问一个对象 属性 需要 O(n),那么这两个代码的运行时间会相同吗?
Javascript 语言对操作的时间复杂度没有任何要求,因此性能将取决于您使用的 Javascript 解释器。
(在某些情况下,它甚至可能无法修复;大多数现代 Javascript 解释器执行运行时优化,这可能会改变操作的时间复杂度。)