我使用9个链接列表制作了游戏,另外1个链接列表获取了其他9个链接列表的所有地址。因此,使用链表就像二维数组。
我正在尝试计算Big-O我的数据结构适合并且比2维数组更好但是我关注三件事。
存在称为[10] [10]的二维数组,当我插入[5] [5] = 1时它是否为O(1)?
链接列表中存在N个节点,那么为了找到最终节点是O(N)?
正如我之前所说的那样,我制作了一个看起来像的链表 二维数组和每个链表有N个节点。 如果我找到每个链表的最终节点并将其移动到每个头。是O(N ^ 2)?
答案 0 :(得分:0)
2维数组称为[10] [10]存在,当我插入[5] [5] = 1是否为O(1)?
不,它是 O(行索引+列索引),因为您需要通过遍历找到一个链表,然后通过另一遍遍找到其中的节点。
链接列表存在N个节点,那么为了找到最终节点是O(N)?
这取决于实施。有些链接到最终节点,然后是 O(1)。单链表确实是 O(n)。
正如我之前所说,我制作了一个看似二维数组的链表,每个链表都有N个节点。如果我找到每个链表的最终节点并将其移动到每个头。是O(N ^ 2)?
这取决于前一点: O(n)或 O(n ^ 2)。
答案 1 :(得分:-1)
你对第一个问题是正确的。 关于第二个你也是对的。 现在,大约第三个。您有9个链接列表。访问链表的最终节点是O(n)。因此,访问您所拥有的9个链接列表中的每一个的最终节点仍然是O(n),因为您有一定数量的链接列表。