码:
var PhoneNumbers = {
"J Smith": 7125551212,
"A Johnson": 4023331212
}
alert(PhoneNumbers["J Smith"]); // 7125551212
查找的速度为O(1)。在什么深度速度比O(1)慢?
例如:
var PhoneNumbers = {
"J Smith": {
age: 40,
phoneNumber: 7125551212
},
"A Johnson": {
age: 40,
phoneNumber: 7125551212
}
}
alert(PhoneNumbers["J Smith"]["phoneNumber"]); // 7125551212
第二个示例的速度是否比O(1)慢?
最佳答案
嵌套字典查找的复杂度为O(N),其中N为嵌套深度。
任何特定查找操作(固定对象,固定键)的复杂性是恒定的(即O(1)):它将始终花费相同的时间。
至少在“典型”情况下,单个查询应为O(1)。字典通常实现为哈希表,理论上,如果所有键具有相同的哈希值,则哈希表可以降级为O(N)(N是字典中键的数目)。
关于javascript - 搜索对象文字的深度比O(1)慢?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16863221/