链表和顺序表
这两个结构各有优势,很难说谁更优?
严格来说,它们相辅相成。
- 顺序表
优点:①支持随机访问。需要随机访问结构支持算法很好的适用
②cpu高速缓存利用率高
缺点:①头部或中部插入或删除时间效率低,O(N)
②连续的物理空间,空间不够需要增容。
增容有一定程度的消耗
为了避免频繁增容,一般按倍数增容,用不完可能存在一定的空间浪费
- 链表(双向带头循环链表)
优点:①任意位置插入删除效率高。O(1)
②按需申请释放空间
缺点:①不支持随机访问(下标访问),有些算法不能用(比如快排、二分查找)
②链表存储一个值,同时要存储连接指针,也有一定消耗
③cpu高速缓存命中率更低
本文探讨了链表和顺序表这两种数据结构的特点。顺序表支持随机访问且CPU缓存利用率高,但插入删除操作效率较低;而链表在插入删除方面表现优秀,空间使用灵活,但不支持随机访问且CPU缓存命中率低。
1623

被折叠的 条评论
为什么被折叠?



