我读到有关链表和数组的信息,并且我大部分读到的是,数组在搜索中性能更好,链表在插入和删除方面性能更好,但是这并不能证明。 我需要有人告诉我为什么吗?!
答案 0 :(得分:1)
在数组中,您可以快速访问任意元素(例如第17个元素),链表中的相同操作也需要先访问所有元素。
另一方面,在数组中插入元素意味着将紧随其后的所有元素向上移动一个插槽以腾出空间,在链接列表中,此操作只是对固定数量的指针的操作。
答案 1 :(得分:0)
插入和删除
在数组中,插入和删除操作需要更多时间,因为内存位置是连续且固定的。
在链表的情况下,新元素存储在第一个空闲和可用的存储位置,只有一个开销步骤,即在链表的前一个节点中存储存储位置的地址。链表中的插入和删除操作很快。
搜索
数组支持随机访问,这意味着可以使用它们的索引直接访问元素,例如第一个元素的arr [0],第七个元素的arr [6]等。因此,数组中元素的访问速度快且时间恒定O(1)的复杂度。
链表支持顺序访问,这意味着要访问链表中的任何元素/节点,我们必须顺序遍历整个链表,直至该元素。要访问链表的第n个元素,时间复杂度为O(n)。
我从https://www.studytonight.com/data-structures/linked-list-vs-array复制了论点。您可以转到此链接并获得有关这两种结构的想法。