数据结构--顺序表和链表的区别

        顺序表和链表之间各有优劣,我们不能以偏概全,所以我们在使用时要关注任务的注重点,以此来确定我们要使用两者中的哪一个。

        不同点:

存储空间上:

        顺序表在物理结构上是一定连续的,而链表(这里以带头双向循环链表为主)在逻辑结构上连续,但在物理结构上不一定连续。

随机访问元素(下标)的时间复杂度:

        顺序表支持且为O(1),链表不支持,所以为O(n)。

任意位置插入或删除元素的时间复杂度:

        顺序表可能需要移动元素,所以效率较低,时间复杂度为O(n);链表只需要修改指针的指向即可,时间复杂度为O(1)。

扩容:

        动态顺序表的空间不够时需要扩容,使用的realloc函数,其扩容分为原地扩容和异地扩容,本身就会有消耗,效率低下,且存在空间浪费。链表中没有容量的概念,每一个节点都是按需申请释放,因此效率较高。

应用场景:

        顺序表大多应用于元素的高效存储+频繁访问;链表大多应用于任意位置频繁的插入和删除。

缓存利用率:

        顺序表高,链表低。

我们再介绍一下缓存利用率:

         主存即内存,磁盘即硬盘。两者的差异是,内存为带电存储,速度快;硬盘的速度慢,但是可以不带电存储。远程二级存储其实就是我们经常用的网盘。我们的存储空间大概就分为这7层,第一层为寄存器,保存着L1高速缓存存储器中取出的数据,L1高速缓存中保存着从L2高速缓存中取出的缓存行,下同。在我们电脑使用的空间小时,我们可以直接使用寄存器处理,如果数据慢慢变多,我们就会用到更大的存储器,在寄存器有空闲时,下一层的的存储器会向上一层的缓存行中输出,保证计算机空间的有序和利用效率。

        在正常情况下,计算机会将部分数据先加载缓存,如果在缓存(称为缓存命中),会直接访问;如果不在缓存(称为缓存不命中),要先把部分数据从内存加载到缓存,再访问。

        我们知道顺序表在内存空间中的存储是连续的,这就会提高缓存的利用率。而链表在内存空间中的存储不一定连续,这会导致缓存区中会有很多无效数据,使缓存利用率降低。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/837388.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面 试 题

过滤器和拦截器的区别 都是 Aop 思想的一种体现,用来解决项目中 某一类 问题的两种接口(工具),都可以对请求做一些增强 出身 过滤器来自 servlet 拦截器来自 spring 使用范围 过滤器 Filter 实现了 iavax.servlet.Filter 接口,也就是说…

CSS实现渐变色

渐变色分为线性渐变和径向渐变。 线性渐变linear-gradient(方向, 颜色1, 颜色2, … ,颜色n)径向渐变radial-gradient(颜色1 覆盖区域大小, 颜色2 覆盖区域大小, … ) 线性渐变的方向可以为: ​ 1、一个方向值时: to bottom 表示从上边到下边渐变 ​ 2、…

Spring AI多模态接口开发

文章目录 项目地址创建项目配置项目接口开发结果测试测试接口测试在线图片接口测试本地图片接口测试 项目地址 Spring AI项目开发 创建项目 打开IDEA创建一个新的spring boot项目,填写项目名称和位置,类型选择maven,组、工件、软件包名称可…

Android 11 输入系统之InputDispatcher和应用窗口建立联系

InputDispatcher把输入事件传给应用之前,需要和应用窗口建立联系,了解了这个过程,就清楚了APP进程和InputDispatcher线程也就是SystemServer进程之间是如何传输数据了 我们向窗口addView的时候,都会调用到ViewRootImpl的setView方…

Docker 部署 Nginx 实现一个极简的 负载均衡

背景: Nginx是异步框架的网页服务器,其常用作反向代理(负载均衡器)。在一般的小项目中, 服务器不多, 如果不考虑使用服务注册与发现, 使用Nginx 可以容易实现负载均衡。 在特此写一个快速入门 Nginx 的技术贴, 使用 Docker 部署 Nginx, 实现一个极简的加权轮询负载均…

现在的原创内容博客 SEO 最好就选谷歌和必应!

当我们在国内讨论搜索引擎优化的时候,我们经常讨论的是百度 SEO,很少提及 Bing 搜索与 Google 搜索,但随着跨境电商的崛起,在国内做外贸 SEO 的小伙伴越来越多,有效的了解 Bing 搜索与 Google 搜索的优化规则是很有必要…

开源aodh学习小结

1 介绍 aodh是openstack监控服务(Telemetry)下的一个模块,telemetry下还有一个模块ceilometer OpenStack Docs: 2024.1 Administrator Guides Get Started on the Open Source Cloud Platform - OpenStack Telemetry - OpenStack 1.1 代码仓…

softmax函数与交叉熵损失详解

文章目录 一、softmax函数1.1 引入指数形式的优点1.2 引入指数形式的缺点 二、交叉熵损失函数2.1 交叉熵损失函数2.2 softmax与交叉熵损失 参考资料 一、softmax函数 softmax用于多分类过程中,它将多个神经元的输出,映射到(0,1)区…

【C++ 内存管理】深拷贝和浅拷贝你了解吗?

文章目录 1.深拷贝2.浅拷贝3.深拷贝和浅拷贝 1.深拷贝 🍎 深拷⻉: 是对对象的完全独⽴复制,包括对象内部动态分配的资源。在深拷⻉中,不仅复制对象的值,还会复制对象所指向的堆上的数据。 特点: 🐧① 复制对…

记录一下 log4j的漏洞

目录 背景 bug的产生 bug复现 JNDI 网络安全学习路线 (2024最新整理) 学习资料的推荐 1.视频教程 2.SRC技术文档&PDF书籍 3.大厂面试题 特别声明: 背景 log4j这次的bug,我相信大家都已经知道了,仅以…

【unity小技巧】减少Unity中的构建打包大小

文章目录 正常默认打包查看编辑器打包日志压缩图片压缩网格模型压缩贴图压缩音频文件只打64位包最终大小完结 正常默认打包 这里以安卓为例。先什么都不干,直接打包安卓apk,查看包大小 查看编辑器打包日志 搜索build report构建报告。构建报告我们应该…

Pytorch学习-引言

Pytorch相关链接 Pytorch官方网站 https://pytorch.org/ Pytorch的Github仓库 https://github.com/pytorch/pytorch Pytorch论坛 https://discuss.pytorch.org/ Pytorch离线下载包链接 https://download.pytorch.org/whl/torch_stable.html Pytorch学习视频推荐链接 http://【…

手写一个SPI FLASH 读写擦除控制器

文章目录 flash读写数据的特点1. 扇擦除SE(Sector Erase)1.1 flash_se 模块设计1.1.1 信号连接示意图:1.1.2 SE状态机1.1.3 波形图设计:1.1.4 代码 2. 页写PP(Page Program)2.1 flash_pp模块设计2.1.1 信号连接示意图:…

JavaScript 对象入门:基础用法全解析

目录 对象 语法 属性和访问 方法和调用 this关键字 null 遍历对象 内置对象 Math 属性 方法 Date 创建日期对象 获取和设置日期 ⭐对象 对象是 JavaScript 数据类型的一种,数据类型也包括数值类型、字符串类型、布尔类型、undefined。对象数据类型可…

程序员之路:裁员与内卷下的生存之道

作为一名普通的程序员,身处这个瞬息万变的IT行业,面对着今年不断加剧的裁员浪潮和日益激烈的内卷竞争,我时常感到焦虑和不安。然而,正是这些挑战,让我们更加深入地思考了在这个行业中,我们该如何找到自己的…

2024统计建模中国新质生产力统计测度与时空演变及其驱动因素研究

高质量成品论文46页word版本1.5w字书写完整数据集1000行py代码一等奖论文!这里仅展示部分内容,完整版在下面的链接。 【1.5w字全网最佳】2024统计建模大赛高质量成品论文39页配套完整代码运行全套数据集https://www.jdmm.cc/file/2710661/ 中国新质生产…

【2024HNCTF】密码组部分出题记录

2024H&NCTF 密码组部分出题记录 题目:BabyPQ、HappyDance 文章目录 2024H&NCTF 密码组部分出题记录BabyPQ | 签到HappyDance BabyPQ | 签到 本题为nc交互题,之所以采用这种形式,是因为可能有很多密码新师傅们不了解这种赛题形式&a…

AI机器人火了,探讨早就可以帮我们开拓市场的中关村科金语音机器人

近期AI机器人给我们带来了不少惊喜,比如国外 Figuer 联合 OpenAI 做了 Chatgpt 机器人,可以通过对话后推理干活,国内仿生机器人员工也开始量产,看到AI机器人不禁想到会不会替代我们的工作?我们了解到很多机器人厂家的…

#初阶模板

目录 1.泛型编程 2.模板 (1)函数模板 (2)举个栗子(模板的使用) 1.模板的声明有两种形式 2.函数模板的原理 (3)模板参数的匹配原则 (4)类模板 类模板…

AI图像生成-原理

一、图像生成流程总结 【AI绘画】深入理解Stable Diffusion!站内首个深入教程,30分钟从原理到模型训练 买不到的课程_哔哩哔哩_bilibili 二、如果只是用comfy UI生成图片 1、找到下面几个文件,把对应模型移动到对应文件夹即可使用 2、选择对…