回答
在该表中,“访问”列指的是时间访问一个给定的元件中,通过指数。这就是为什么在一个数组中,访问被描述为O(1) - 返回一个数组的第i个元素是一个常量时间操作。同样,对于一个链表,它是一个O(n)操作 - 如果你有一个链表,并且想要索引为i的项目,则需要从链接跳转到链接i次。
现在,在散列表(字典,散列表等)中,我们不谈论'索引i处的元素' - 我们根本不谈论索引!这就是这个表的意思是将NA作为哈希表的“访问”值。我们根本就没有(在这里使用的意义上)对hashmaps进行'访问'操作。
也许一个明确的例子可能会有所帮助。
myLinkedList = ['red','blue','orange']
myArray = ['black','white','green','yellow']
myHashMap = {'address':'10 wall st', 'gender':'male'}'
在头两个实施例中,我们可以访问给定的索引处的元素。
即:
myLinkedList[1] == 'blue'
和
但我们可以通过索引不访问包含HashMap。
myHashMap[0]
在这个实例中没有定义!因此,“访问”对于hashmaps来说是不适用的。
但是,在这种情况下,我们有相同的操作:按键搜索。
即:
myHashMap['address'] == '10 wall st'
的O(1)的操作。
无论你是否因为不知道数据结构内部结构而知道这个问题(在这种情况下,确实要学习它们,这是值得的),或者如果你仅仅被该表格上的术语所困惑,我希望这个答案能够帮助你。
我们通常是通过索引访问栈或队列项吗?我想不会,但它确实有访问的大O.虽然我确实看到这些也可以被认为是线性的。 –
- 1. 为什么$ header在这里没有定义?
- 2. 为什么Process0没有被定义为过程[ID,O]
- 3. 为什么Clang没有vectorise big-int XOR
- 4. Haskell SDL绑定:为什么SDL在这里没有画圆圈?
- 5. 感叹号在big-o中的含义是什么,即O(X!)?
- 6. Big-O表示法的定义
- 7. 为什么Bubble,Insertion和Selection排序有相同的Big-O?
- 8. 为什么我在这里得到''System.Windows.Forms.Control'没有包含“Checked'...”的定义?
- 9. 为什么这些不需要在这里定义?
- 10. 为什么这些列表项目没有正确定位?
- 11. 为什么不能在散列表中存储散列表?
- 12. 为什么要在这里锁定QMutex?
- 13. 为什么mutableCopy在这里?
- 14. 为什么ExceptionInInitializerError在这里?
- 15. 为什么这里正在
- 16. *这里定义了什么?
- 17. 为什么我在这里有锁?
- 18. 为什么这个散列表中的元素没有按预期排序
- 19. 为什么在这个ListView中没有定义'SelectedIndex'?
- 20. 为什么这个变量在Python中没有定义?
- 21. 为什么这个方法在我的IDE中没有定义?
- 22. 为什么在$()里面定义函数?
- 23. 为什么perl“列表散列”这样做?
- 24. 为什么T没有演绎为int &&这里
- 25. 为什么我的变量在这里未定义的NodeJS中
- 26. 为什么我在这里一直未定义?
- 27. 为什么在这里需要自定义解析器(AutoMapper)?
- 28. 为什么这个值没有被返回,因为它应该在这里?
- 29. 链接列表的相关Big O符号是什么?
- 30. 为什么getAttribute没有定义?
链接到备忘单丢失。 –
您应该尝试在这里:https://cs.stackexchange.com –