【发布时间】:2011-07-23 15:22:56
【问题描述】:
我对此感到非常困惑。到处都写着“链表比数组快”,但没有人努力说出为什么。使用简单的逻辑我无法理解链接列表如何更快。在一个数组中,所有单元格都彼此相邻,因此只要您知道每个单元格的大小,就很容易立即到达一个单元格。例如,如果有一个 10 个整数的列表,并且我想获取第四个单元格中的值,那么我就直接转到数组的开头+24 个字节并从那里读取 8 个字节。
另一方面,当你有一个链表并且你想在第四位获取元素时,你必须从列表的开头或结尾开始(取决于它是单列表还是双列表)然后去从一个节点到另一个节点,直到找到所需的内容。
那么如何一步一步地比直接进入一个元素更快呢?
【问题讨论】:
-
这取决于您要完成的工作。如果要搜索或访问特定元素,数组会更快,但如果要插入或删除元素,链表会更快。
-
我非常想看到一个链接到某个地方,使这个声明。
-
@x3ro 正如一些人回答的那样,快速是相关的。所以在某些地方写到数组比链表快,在某些地方写到链表比数组快。我用谷歌搜索并没有找到任何结果,这就是我在这里发布问题的原因,因为我很困惑。现在,我的问题居于首位,任何想知道同样问题的人都会明白自己的想法。
-
@Pithikos:en.wikipedia.org/wiki/… 呢?
-
@x3ro 作为初学者,我更喜欢一个更直截了当的答案,而不是阅读整个维基百科却什么都不懂。毕竟不是每个人都对格式语言感到满意。
标签: arrays performance linked-list