码迷,mamicode.com
首页 > 其他好文 > 详细

顺序表和链表的比较

时间:2019-10-24 21:34:16      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:一半   性能   时间性能   遍历   span   表头   移动   font   限制   

 

通常从空间性能和时间性能两个方面比较分析:

1.空间性能的比较

线性表长度变化大,难以预估存储规模,用链表

线性表长度变化不大,能事先确定存储大小,用顺序表

a.存储空间的分配

顺序表的存储空间必须预先分配,元素个数扩充受限,易造成存储空间浪费或空间溢出现象;

链表无需预先分配空间,内存空间允许时,元素个数无限制。

b.存储密度的大小

不考虑顺序表中的空闲区,顺序表存储空间利用率为100%,存储密度为1;

链表存储空间利用率小于100%,存储密度小于1,单链表存储密度为0.5。

长度变化不大,且事先确定存储大小,采用顺序表可节约存储空间。

 

2.时间性能的比较

很少查找,频繁插入或删除,用链表

频繁查找,很少插入或删除,用顺序表

a.存取元素的效率

顺序表是由数组实现的随机存取结构,根据位置序号实现取值操作,效率高 时间复杂度O(1);

链表是顺序存取结构,从表头开始依次向后遍历链表,取值效率底 时间复杂度O(n)。

b.插入和删除操作的效率

链表插入或删除无需移动数据,只修改指针,时间复杂度为O(1);

顺序表插入或删除时,平均要移动表中近一半的结点,时间复杂度为O(n)。

顺序表和链表的比较

标签:一半   性能   时间性能   遍历   span   表头   移动   font   限制   

原文地址:https://www.cnblogs.com/nfgg/p/11734720.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!