我看到了这篇文章:你应该使用链表吗?它指出,鉴于可用内存和RAM结构的技术进步,使用数组将比链表更好。
还有一个老问题:什么时候在数组/数组列表上使用链表?
文章中的参数是否真的成立,链表是否已经过时,或者如果参数为真,使用链表仍然比数组更好的情况是什么?
胡说。O(n)永远不会超过常数时间。任何需要在保存迭代器的插入中表现良好的列表使用都将使用链表。它们是基本结构,不会消失。
我想用另一种方式来扭转这个论点:现在链表更容易被接受。在386上,你必须小心性能,但现在,我们甚至用Python编写程序,并忍受它们的速度。从使用虚拟机(或解释)的语言编写的代码数量来看,我认为公平地说,很多人在选择数据结构时并不担心缓存丢失。
我们现在有快速的cpu,所以通常不需要担心在实现我们的数据结构时可能需要的一些额外指令。我们可以看看我们的用途,找出我们的需求,根据它们的渐近性能选择我们的结构。这也使代码更易于维护:如果您在六个月的时间内发现n=100列表毕竟更快,则不必更改代码。分析是一项艰苦的工作,所以我们应该在cpu耗电的日子里非常舒适地选择具有我们想要的算法属性的结构,而不是猜测向量。