顺序表、链表的 “ 相爱相杀 ”(多方位比较)

本文对比了顺序表和链表在存储空间分配、存储密度、元素存取效率以及插入删除效率上的差异。顺序表适合表长变化不大,插入删除操作少的情况,具有随机存取的优势;链表则在动态扩展和插入删除上更高效,但存储密度较低。在选择使用哪种数据结构时,应根据实际需求权衡这些因素。
摘要由CSDN通过智能技术生成

 空间性能比较

(1)存储空间分配

                顺序表需提前分配空间内存,易造成空间的浪费或溢出;链表则不需要提前分配内存大小,只要内存空间足够的大,可以无限制添加元素

(2)存储密度比较

               存储密度越大,对存储空间的利用率越高,先介绍一下存储密度

               存储密度=数据元素占用的存储量 / 节点结构占用的存储量;(存储密度越大,越经济)

               我们知道,链表除了需要设置数据域存储数据元素之外,还需要外加一个指针域;对于顺序表而言,顺序表的存储密度为1,则对于链表,存储密度小于1。

        那么为什么链表的存储密度小于1呢 ?

       举个栗子,:如果链表的每个数据元素的数据域占用的空间较小,那么指针所占用的空间和int量相同,则链表的存储密度仅仅为 0.5!


 时间性能比较

(1)元素的存取效率

                顺序表:随机存取,按照访问位置元素的时间复杂度为O(1)

                链    表:顺序存储,顺着链域一个一个寻找,按照访问位置元素的时间复杂度为O(n)

(2)插入和删除的效率

                顺序表:平均移动顺序表内约一般元素,时间复杂度为O(n)

                链    表:不需要移动元素,确定插入或删除的位置后,时间复杂度为O(1)


食 用 情 况(建议在成人监护下食用. . . )

                顺序表:表长变化不大,事先确定变化范围、很少进行插入或删除操作

                链   表:表长变化较大、经常需要执行插入或删除操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值