码:

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/

10-09 04:43