gpt4 book ai didi

data-structures - 链表删除的时间复杂度

转载 作者:行者123 更新时间:2023-12-04 05:29:45 28 4
gpt4 key购买 nike

根据 this website.,我在理解为什么链接列表的时间复杂度为 O(1) 时遇到了一些麻烦据我了解,如果你想删除一个元素,你必须遍历列表以找出元素所在的位置(如果它甚至存在)?据我所知,它不应该是 O(n) 还是我完全错过了什么?

最佳答案

不,你没有错过任何东西。

如果要删除特定元素,时间复杂度为O(n) (其中 n 是元素的数量)因为您必须先找到元素。

如果要删除特定索引处的元素 i ,时间复杂度为 O(i)因为您必须从一开始就遵循链接。

插入的时间复杂度仅为O(1)如果您已经有对要在其后插入的节点的引用。移除的时间复杂度仅为O(1)如果您已经拥有对要删除的节点的引用,则用于双向链表。单向链表的删除只是 O(1)如果您已经引用了要删除的节点和之前的节点。所有这些都与基于数组的列表形成对比,其中插入和删除是 O(n)因为你必须移动元素。

使用链表而不是基于数组的列表的优点是可以在迭代时高效地插入或删除元素。这意味着例如过滤链表比过滤基于数组的列表更有效。

关于data-structures - 链表删除的时间复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33987542/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com