链接列表是否仍然相关?

时间:2013-06-04 09:22:57

标签: c data-structures linked-list

我看到了这篇文章:Should you ever use Linked List。它引用了可用内存和RAM结构的技术进步,使用数组将比Linked List更好。

还有一个老问题When to use a linked list over an array/array list?

文章中的参数是否真的成立并且链接列表是否已经过时,或者如果参数为真,使用LinkedList的情况仍会比Arrays更好? (有关示例的任何一点的解释都会有所帮助)

1 个答案:

答案 0 :(得分:3)

无意义。 O(n)永远不会超过恒定时间。使用保存迭代器插入所需的列表将使用链接列表。它们是一个基本结构,不会消失。

我会以另一种方式转动论证:链接列表如今更容易被接受。在386上,你必须小心性能,但是现在,我们甚至用Python编写程序,并忍受它们的速度。从使用VM(或被解释)的语言编写的代码量来看,我认为很多人都不会担心在选择数据结构时出现缓存缺失。

我们现在拥有快速CPU,因此通常不必担心实现数据结构时可能需要的额外指令。我们可以看看我们的用途,找出我们的要求,并根据它们的渐近性能选择我们的结构。这也使代码更易于维护:如果您在六个月内发现n = 100列表更快,则不必更改代码。分析是一项艰苦的工作,因此我们应该在耗费大量资源的时候非常自如地选择具有我们想要的算法属性的结构,而不是猜测向量。