Computer science 为什么这里没有为哈希表定义大O?
在本备忘单中,访问哈希表的平均时间复杂度列为N/a 我很好奇为什么。由于散列表基本上是数学的,没有外循环,所以我假设它与其他操作一样是O(1)。。。搜索、插入、删除Computer science 为什么这里没有为哈希表定义大O?,computer-science,Computer Science,在本备忘单中,访问哈希表的平均时间复杂度列为N/a 我很好奇为什么。由于散列表基本上是数学的,没有外循环,所以我假设它与其他操作一样是O(1)。。。搜索、插入、删除 在该表中,“访问”列按索引表示访问给定元素的时间。这就是为什么在数组中,访问被描述为O(1)——返回数组的第i个元素是一个常数时间操作。类似地,对于链表,这是一个O(n)操作——如果您有一个链表,并且希望该项位于索引i处,则需要从一个链接跳到另一个链接,i次 现在,在哈希表(字典、hashmap等)中,我们不谈论“索引i处的元素”-
在该表中,“访问”列按索引表示访问给定元素的时间。这就是为什么在数组中,访问被描述为O(1)——返回数组的第i个元素是一个常数时间操作。类似地,对于链表,这是一个O(n)操作——如果您有一个链表,并且希望该项位于索引i处,则需要从一个链接跳到另一个链接,i次 现在,在哈希表(字典、hashmap等)中,我们不谈论“索引i处的元素”-我们根本不谈论索引!这就是这个表的意思,它将NA作为哈希表的“访问”值。我们只是在hashmaps上不做(这里使用的)访问操作 也许一个明确的例子会有所帮助
myLinkedList=[“红色”、“蓝色”、“橙色”]
myArray=[“黑色”、“白色”、“绿色”、“黄色”]
myHashMap={'address':'10 wall st','gender':'male'}'
在前两个示例中,我们可以访问给定索引处的元素
即:
myLinkedList[1]=“蓝色”
和myArray[0]=“黑色”
但是我们不能通过索引访问hashmaps
myHashMap[0]
未在此实例中定义!所以“访问”是对hashmaps的不适用
然而,在此上下文中,我们有一个等价的操作:按键搜索
即:
myHashMap['address']=='10 wall st'
O(1)操作
无论你问这个问题是因为你不了解数据结构的内部结构(在这种情况下,一定要学习它们,这是值得的),还是如果你只是被那张备忘单上的术语弄糊涂了,我希望这个答案会有所帮助。在那张表中,“访问”列是指按索引访问给定元素的时间。这就是为什么在数组中,访问被描述为O(1)——返回数组的第i个元素是一个常数时间操作。类似地,对于链表,这是一个O(n)操作——如果您有一个链表,并且希望该项位于索引i处,则需要从一个链接跳到另一个链接,i次 现在,在哈希表(字典、hashmap等)中,我们不谈论“索引i处的元素”-我们根本不谈论索引!这就是这个表的意思,它将NA作为哈希表的“访问”值。我们只是在hashmaps上不做(这里使用的)访问操作 也许一个明确的例子会有所帮助
myLinkedList=[“红色”、“蓝色”、“橙色”]
myArray=[“黑色”、“白色”、“绿色”、“黄色”]
myHashMap={'address':'10 wall st','gender':'male'}'
在前两个示例中,我们可以访问给定索引处的元素
即:
myLinkedList[1]=“蓝色”
和myArray[0]=“黑色”
但是我们不能通过索引访问hashmaps
myHashMap[0]
未在此实例中定义!所以“访问”是对hashmaps的不适用
然而,在此上下文中,我们有一个等价的操作:按键搜索
即:
myHashMap['address']=='10 wall st'
O(1)操作
无论你问这个问题是因为你不知道数据结构的内部结构(在这种情况下,一定要学习它们,这是值得的),还是如果你只是被那张备忘单上的术语弄糊涂了,我希望这个答案有帮助。缺少到备忘单的链接。您应该在此处尝试:缺少到备忘单的链接。您应该在此处尝试:我们通常按索引访问堆栈或队列项目吗?我想不会,但它确实有一个大O的访问。虽然我也看到了如何将它们视为线性的。我们通常是通过索引访问堆栈或队列项目吗?我想不会,但它确实有一个大O的访问。虽然我也明白了这些是如何被视为线性的。