news 2026/6/23 3:18:20

数据结构学习篇(5)---顺序表和链表的区别

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
数据结构学习篇(5)---顺序表和链表的区别

对于顺序表和链表的异同,上面这个表格直观展示了两者的不同之处,有几点可以做一下解释:顺序表和链表在逻辑结构上都是连续的,但是在物理结构,也就是存储空间上,顺序表是连续的,因为他的本质是数组,而链表是不连续的;其次在随机访问方面,顺序表是可以直接通过下标来访问其中的数据的,这个操作对应的时间复杂度为O(N),但是对于链表而言则无法进行这种操作,它是需要遍历其中的每一个节点才可以对数据进行访问,这就涉及到循环,所以对应的时间复杂度为O(N);对于两者在插入数据方面,链表是优于顺序表的,因为顺序表在进行扩容操作时,往往是按照原来容量的两倍进行操作,这就可能会导致空间过剩或空间不足,而当空间不足时又要进行下一次的空间扩容,这对时间和空间都会造成损耗,相对于链表而言就没有这一说,想要进行数据增加只需要增加相应节点即可,时间上得到了保证同时空间也不会产生浪费。

对于缓存利用率这点,则需要做一些扩展来进行解释:

这副图片直观展示了计算机存储数据的方式,其中对于寄存器而言,可以理解为是存储一些小的数据,而往下的三个高速储存器则是储存一些大的数据,当然这些数据都是经过缓存的,通常数据存储在内存当中,也就是L4;如果cpu要对数据进行处理,则需要先判断所需数据有没有被缓存,如果已经提前缓存好了,那么“缓存命中”,则可以直接对这些数据进行访问,如果没有进行缓存,说明“缓存不命中”,那么就要把数据从内存加载到缓存中,也就是前四级中,那么这个加载过程并不是对数据进行一个一个的缓存,而是缓存所需数据及其后面跟着的一块数据集,这些数据 的地址都是连续的,所以对于顺序表而言,因为其存储空间是连续的,所以cpu要对一个顺序表里面的数据进行访问时,能够先直接将一整块数据进行缓存然后进行访问,这样的话缓存利用率就很高,但是对于链表而言,因为它的存储空间并不连续,所以对里面的数据进行一整块缓存时,就会缓存一些不必要的数据而导致缓存污染,这也就说明链表的缓存利用率低。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 8:57:52

【Matlab】代码库:RGB三通道图像←互转→RGB次序平铺二维

本文介绍了两种MATLAB图像转换方法:1) 将3D RGB图像转换为2D平铺格式,通过向量化操作将RGB通道展开为连续列,并将8位数据扩展到12位;2) 将2D平铺图像还原为3D RGB格式,通过反向操作分离通道并压缩回8位。两种方法均提供…

作者头像 李华
网站建设 2026/6/23 17:55:08

使用 html2canvas + jsPDF 生成PDF 的简单示例(含文字下沉修复)

一、为什么需要自定义封装?自个实现全局 hooks 可控,想怎么来就怎么来(参考 html2pdf.js)。直接使用 html2canvas 和 jsPDF 通常会遇到:内容被截断 / 超出容器内容生成不居中图片跨域污染导致失败Tailwind/UnoCSS 的样…

作者头像 李华
网站建设 2026/6/23 0:57:21

Vue3+Monaco Editor封装及SQL编辑器实现

原文链接&#xff1a;Vue3Monaco Editor封装及SQL编辑器实现 < Ping通途说 0. 前言 最近收到需求&#xff0c;老板想要在前端自定义SQL语句然后查询。安全性我强调了几次&#xff0c;仍然拗不过老板&#xff0c;那就干吧...只能在语句检查和权限上注意一下&#xff0c;例如…

作者头像 李华
网站建设 2026/6/23 17:54:55

MiniCPM-V 4.5

目录 1. 引言 问题背景 解决方案 性能亮点 贡献 2. 方法 2.1 模型架构&#xff08;Architecture&#xff09; 2.2 预训练&#xff08;Pre-training&#xff09; 2.3 监督微调&#xff08;Supervised Fine-Tuning, SFT&#xff09; 2.4 强化学习&#xff08;Reinforce…

作者头像 李华
网站建设 2026/6/23 17:55:08

Flutter工程化与协作实践指南

欢迎大家加入开源鸿蒙跨平台开发者社区&#xff0c;一起共建开源鸿蒙跨平台生态。 Flutter工程化与协作实践指南 工程化核心要素 模块化设计 采用feature-first架构设计&#xff0c;每个功能模块独立封装业务逻辑、数据层和UI组件&#xff0c;通过Dart的export机制统一管理…

作者头像 李华