顺序表和链表的比较

本文对比了顺序表和链表在空间性能和时间性能方面的差异。顺序表预分配空间,存储密度高,适合元素个数固定的场景;链表动态分配空间,插入删除高效,但空间利用率低。在时间性能上,链表插入删除操作(在已知位置)的时间复杂度为O(1),但顺序表需要O(N)。顺序表存取元素速度较快,而链表存取较慢。
摘要由CSDN通过智能技术生成

空间性能的比较

这里是拿顺序表和单链表为例来做比较的

1、储存空间的分配

顺序表的储存空间必须预先分配,元素个数扩充受一定限制,容易造成存储空间的浪费或空间溢出现象;而链表不需要预先分配空间,只要内存空间允许,链表中元素个数就没有限制。因此,当一个线性表元素个数难以预测时,宜采用链式存储。

2、空间利用率

链表的每个结点除了储存数据元素外,还额外储存了指示元素之间逻辑关系的地址,从储存密度上讲,这是不经济的,储存密度是指数据元素本身所占用的存储量和整个结点结构所占用的存储量之比,存储密度越大,存储空间的利用率就越高。顺序表的存储密度为1,而链表的存储密度小于1,例如单链表的空间利用率只有50%,而顺序表的空间利用率为100%。因此,当线性表的数据个数事先能确定时,为了节省空间,宜采用顺序存储。

时间性能的比较

1、插入和删除元素的效率

对于链表来说,在确定插入和删除元素的位置后,插入或删除操作无需移动元素,只需要修改指针域,所以时间复杂度为O(1),而对于顺序表来说,进行插入和删除操作时,需要有大量的元素移动,所以时间复杂度为O(N)(注意:前面说的链表的插入和删除是在确定位置的情况下,但是实际情况是链表的插入和删除是在查找的基础上进行的,所以严格来说时间复杂度应该是O(N)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值