微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么查找总是恒定时间而不是On

如何解决为什么查找总是恒定时间而不是On

我正在使用JavaScript,但是我认为这与许多计算机语言有关。

在以下情况下,为什么在objObject)中进行查找是O(1)?是不是应该O(n)?有人可以向我解释一下,例如提供一个实际的,低级的解释为什么不是O(n)吗?

let arr = ['m','k','b','z']
let obj = { 'a': true,'b': true,'c': true}

for (let i = 0; i < arr.length; i++) {
  if ( obj[arr[i]] ) {
    return true
  }
}

上述时间复杂度被认为是O(n),但希望您能明白为什么这个问题对我来说越来越大,因为为了查找(例如)obj['b'] === arr[2](这正是我与条件if ( obj[arr[i]] )进行比较,我自然会认为它应该遍历obj的所有属性并进行比较,但不是那种同类的循环,因此总的来说应该是O(n^2)?再一次,如果没有,请解释为什么,为什么不循环,但能够立即将其拾取(O(1))。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。