今天学习了单链表就和顺序表对比做个总结吧
其实链表和顺序表(数组)没有谁好谁差。两种数据结构的优缺点正好互补
数组的缺点:不能动态存储
顺序表:解决了动态存储,但是还是有缺点
1.空间开辟不当,会有空间浪费
2.开辟空间会是效率降低
3.中间或头部插入元素要挪动其他空间,时间复杂度为O(N),效率低下
链表:链表的插入元素都是O(1),效率高,但是不能像数组访问空间,可以随机访问元素位置,查找元素的能力差,而且缓存命中率低下,而数组缓存命中率很高
存储结构方式
顺序表:用一段连续的存储单位依次放置线性表中的元素
单链表:采用链式存储,可以将任意的存储单元存放至线性表内
时间性能
查询元素:
- 顺序表O(1)
- 单链表O(n)
插入删除元素
- 顺序表平均移动表长的一半的元素,时间O(n)
- 单链表只要找到第i个元素的所在位置,再插入和删除元素就为O(1)
总结:
- 由上可知,单链表优势是插入和删除元素,顺序表优势是查询元素,并且数据越大,优势越明显。如果你要的操作是频繁的查询元素,最好采用顺序表,如果要频繁插入元素,最好用单链表。像之后如果在游戏开发时候,捡装备等都需要用到频繁插入储存单元(这只是一个小例子)。当然如果已经知道存储单元个数(一周7天,7月31天)顺序表会更有效率。