这里说的链表是(带头循环双向链表),下面我们就说一下他们的优缺点
首先顺序表
优点
1.支持随机访问
2.在O(1)的时间复杂度内,访问下标为i的位置。
3.很多算法的都必须用顺序表例如sort
4.缓存命中率高
缺点
1.每次容量满了都需要扩容(扩容很浪费系统资源)
2.容易浪费空间
3.头插头删,或者中间插入删除效率太低
链表
优点
1.想要多少空间就直接申请多少空间
2.任意位置的插入删除效率高
缺点
1.不支持随机访问
2.每个节点内都两个指针,浪费
3.缓存命中率低
大家也可以看一下这张图片,上面更完善
这就是他们的优缺点,这里可能不完善,如果大家有什么想要补充的都可以直接提出。
上面提到了缓存命中率
我们可以看一下
什么是缓存命中率?缓存就是cpu每一次访问数据都不是直接和内存打交道,因为内存太慢,所以所以每一次都是缓存加载一部分数据,然后供cpu访问,而这里的缓存是每一次都加载一段数据,并不是一个一个加载,由于顺序表内存是连续的,所以缓存命中率高,而链表的内存不是连续的,所以缓冲命中率低
完毕~~~~