顺序表和链表的总结

尾插和尾删   

顺序表:O(1)                 

不带头节点的单链表:遍历链表,删除O(N)

如果将最后一个节点保存:O(1)

 

任意位置的插入与删除

顺序表O(N),因为涉及到数据的迁移

链表O(1)

 

顺序表支持随机访问,访问任意位置节点O(1)

链表需要遍历O(N)

 

底层的空间不同

顺序表底层是一段连续的空间

链表底层是不连续的

 

顺序表需要扩容

链表不需要扩容

 

空间利用率有区别,需要结合具体场景看

 

顺序表不需要频繁申请空间,只有扩容时需要申请

链表每次插入新元素时都需要申请节点空间,会造成1.内存碎片 2 .额外空间浪费 3 .效率低

 

应用场景不同,视情况而定

 

顺序表的缓存利用率比链表高

程序刚开始运行前在磁盘里面,当运行起来时加载到内存中,数据也需要加载到内存空间中,CPU运算时需要访问数据,CPU不会直接操作内存空间,因为两者的运行速度天差地别,所以会把数据加载到缓存中,再加上程序具有最近原理性,所以缓存会将数据周围的数据也加载到缓存中,而顺序表底层的空间是连续的,所以说顺序表缓存的利用率更高一点。

 

顺序表和链表的实现难易程度不同。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值