数据结构和算法学习记录——总结顺序表和链表(双向带头循环链表)的优缺点、CPU高速缓存命中率

简介: 数据结构和算法学习记录——总结顺序表和链表(双向带头循环链表)的优缺点、CPU高速缓存命中率

顺序表和链表

两个结构各有优势,严格来说,他们是相辅相成的。

顺序表

优点

  1. 支持随机访问(用下标访问),需要随机访问结构支持的算法可以很好的适用。
  2. CPU高速缓存命中率较高

缺点

  1. 在头部或中部插入删除数据时,时间效率低。O(N)
  2. 是占用的连续的物理空间,空间不够时需要进行扩容。
  • 扩容有一定程度的空间消耗
  • 为了避免频繁扩容,一般我们都按倍数去扩容,用不完的这个空间就存在了空间浪费

链表(双向带头循环链表)

优点

  1. 任意位置插入删除数据都很方便,时间效率高。O(1)
  2. 可以按需申请空间。(用多少申请多少,且不会造成空间消耗)

缺点

  1. 不支持随机访问(用下标访问)。这意味着:一些排序和二分查找等在这种结构上并不适用。
  2. 链表存储一个值,同时也要存储链接指针,也有一定的消耗(很小)。
  3. CPU高速缓存命中率较低。

简单解释CPU高速缓存命中率

存储体系大类别的分,可以分为带电存储和不带电存储。

主存往上是带电存储,往下是不带电存储。


了解CPU高速缓存命中率需要多加了解的两个存储设备:三级缓存、寄存器


寄存器的速度是非常快的,而主存的速度相对来说很慢,当CPU要进行计算时,对于小的数据:会将数据从主存加载到寄存器中,计算完之后再返回内存;对于大的数据:则是会将数据加载到三级缓存中,寄存器从缓存中拿取数据进行计算,计算完再返回内存。



在访问存储数据1的内存位置 0x00123400时,会先看它是否存在于缓存中。

如果在,就直接访问;如果不在,就先加载到缓存中,再进行访问。

加载时,会加载一块连续的内存,假设一次加载20个字节(具体大小取决于硬件体系)。那顺序表的一块空间就能一次被命中到多个(即加载到多个的数据);而链表的内存空间不一定连续,可能加载的一块连续空间中命中不到链表的下一个结点。


end

目录
相关文章
|
存储 机器学习/深度学习 算法
C 408—《数据结构》算法题基础篇—链表(下)
408考研——《数据结构》算法题基础篇之链表(下)。
661 30
|
存储 算法 C语言
C 408—《数据结构》算法题基础篇—链表(上)
408考研——《数据结构》算法题基础篇之链表(上)。
951 25
|
存储 监控 算法
员工电脑监控系统中的 C# 链表算法剖析-如何监控员工的电脑
当代企业管理体系中,员工电脑监控已成为一个具有重要研究价值与实践意义的关键议题。随着数字化办公模式的广泛普及,企业亟需确保员工对公司资源的合理利用,维护网络安全环境,并提升整体工作效率。有效的电脑监控手段对于企业实现这些目标具有不可忽视的作用,而这一过程离不开精妙的数据结构与算法作为技术支撑。本文旨在深入探究链表(Linked List)这一经典数据结构在员工电脑监控场景中的具体应用,并通过 C# 编程语言给出详尽的代码实现与解析。
306 5
|
存储 监控 算法
公司监控上网软件架构:基于 C++ 链表算法的数据关联机制探讨
在数字化办公时代,公司监控上网软件成为企业管理网络资源和保障信息安全的关键工具。本文深入剖析C++中的链表数据结构及其在该软件中的应用。链表通过节点存储网络访问记录,具备高效插入、删除操作及节省内存的优势,助力企业实时追踪员工上网行为,提升运营效率并降低安全风险。示例代码展示了如何用C++实现链表记录上网行为,并模拟发送至服务器。链表为公司监控上网软件提供了灵活高效的数据管理方式,但实际开发还需考虑安全性、隐私保护等多方面因素。
350 0
公司监控上网软件架构:基于 C++ 链表算法的数据关联机制探讨
|
存储 算法 物联网
解析局域网内控制电脑机制:基于 Go 语言链表算法的隐秘通信技术探究
数字化办公与物联网蓬勃发展的时代背景下,局域网内计算机控制已成为提升工作效率、达成设备协同管理的重要途径。无论是企业远程办公时的设备统一调度,还是智能家居系统中多设备间的联动控制,高效的数据传输与管理机制均构成实现局域网内计算机控制功能的核心要素。本文将深入探究 Go 语言中的链表数据结构,剖析其在局域网内计算机控制过程中,如何达成数据的有序存储与高效传输,并通过完整的 Go 语言代码示例展示其应用流程。
305 0
|
机器学习/深度学习 存储 C++
【C++数据结构——线性表】单链表的基本运算(头歌实践教学平台习题)【合集】
本内容介绍了单链表的基本运算任务,涵盖线性表的基本概念、初始化、销毁、判定是否为空表、求长度、输出、求元素值、按元素值查找、插入和删除数据元素等操作。通过C++代码示例详细解释了顺序表和链表的实现方法,并提供了测试说明、通 - **任务描述**:实现单链表的基本运算。 - **相关知识**:包括线性表的概念、初始化、销毁、判断空表、求长度、输出、求元素值、查找、插入和删除等操作。 - **测试说明**:平台会对你编写的代码进行测试,提供测试输入和预期输出。 - **通关代码**:给出了完整的C++代码实现。 - **测试结果**:展示了测试通过后的预期输出结果。 开始你的任务吧,祝你成功!
733 5
|
11月前
|
缓存 人工智能 算法
不同业务怎么选服务器?CPU / 内存 / 带宽配置表
本文详解了服务器三大核心配置——CPU、内存、带宽,帮助读者快速理解服务器性能原理。结合不同业务场景,如个人博客、电商、数据库、直播等,提供配置选择建议,并强调合理搭配的重要性,避免资源浪费或瓶颈限制。内容实用,适合初学者和业务选型参考。
1511 0
|
11月前
|
存储 消息中间件 缓存
从纳秒到毫秒的“时空之旅”:CPU是如何看待内存与硬盘的?
在数据爆炸的时代,如何高效存储与管理海量数据成为系统设计的核心挑战。本文从计算机存储体系结构出发,解析B+树、LSM树与Kafka日志结构在不同数据库中的应用与优化策略,帮助你深入理解高性能存储背后的原理。
350 0
|
存储
阿里云轻量应用服务器收费标准价格表:200Mbps带宽、CPU内存及存储配置详解
阿里云香港轻量应用服务器,200Mbps带宽,免备案,支持多IP及国际线路,月租25元起,年付享8.5折优惠,适用于网站、应用等多种场景。
3465 0
|
10月前
|
弹性计算 定位技术 数据中心
阿里云服务器配置选择方法:付费类型、地域及CPU内存配置全解析
阿里云服务器怎么选?2025最新指南:就近选择地域,降低延迟;长期使用选包年包月,短期灵活选按量付费;企业选2核4G5M仅199元/年,个人选2核2G3M低至99元/年,高性价比爆款推荐,轻松上云。
1105 11

热门文章

最新文章