数据结构与算法系列3之从内存角度分析数组与链表的区别一只胡说八道的猴子

前面两章讲了链表和动态数组,我们这章来从内存的角度的来讲讲二者的区别

由于本章是从内存的角度来讲述数组与链表,所以我们先来讲讲内存

比如我们去考驾照,考驾照的地方有一个寄存柜,你需要将你的东西寄存到寄存柜里

假设每个柜子只可以放一样东西,你有两样东西需要寄存,因此需要两个寄存柜

然后你就可以将你的两样东西寄存到箱子里

需要将数据存储到内存时,你请求计算机提供存储空间,计算机给你一个存储地址。需要存储多项数据。有两种基本方式---数组和链表。他们并非都适用与所有场景。

数组再内存中是连续分布的,什么是连续分布呢,就拿上面的寄存柜来说,比如寄存柜有100个柜子,你有四个东西要寄存,一个柜子只能放一个东西,所以你要四个柜子,连续分布就是只这四个柜子要一个柜子挨着一个柜子连在一起,需要连号,比如1234,5678等等

比如我们去组团看电影,看电影的时候一共有十个人,为了保证10个人能坐在一起,必须提前订好10个连续的位置。这样的好处就是能保证10个人可以在一起。但是这样的缺点是,如果来的人不够10个,那么剩下的位置就浪费了。如果临时有多来了个人,那么10个就不够用了,这时可能需要将第11个位置上的人挪走,或者是他们11个人重新去找一个11连坐的位置,效率都很低。如果没有找到符合要求的作为,那么就没法坐了。

人来在计算机中就是插入数据,人走在计算机中就是删除数据。而数组方式存放数据,插入数据和删除数据效率低,插入数据时,这个位置后面的数据在内存中都要向后移。删除数据时,这个数据后面的数据都要往前移动。比如原来去了5个人,然后后来又去了一个人要坐在第三个位置上,那么第三个到第五个都要往后移动一个位子,将第三个位置留给新来的人。当这个人走了的时候,因为他们要连在一起的,所以他后面几个人要往前移动一个位置,把这个空位补上。

对于这种位置不够的缺点我们可以通过"预留座位的方式"来解决,即即使你们只有十个人去看电影,为了防止有人突然拖家带口,导致位置不够的情况,为了以防万一你就事先买了十五张电影票。一旦有人来了就有位置做了。在计算机中我们为了防止数组溢出,也可以使用这种方式,即申请一个比预期大的数组,来防止数组不够大,存储不了数据的情况。但这种"预留座位"的方式也会导致内存空间的浪费

随机读取效率很高。因为数组是连续的,知道每一个数据的内存地址,可以直接找到给地址的数据。

并且不利于扩展,数组定义的空间不够时要重新定义数组。(刚刚讲的十个座位,多来了一个人,你就只能重新申请空间定义一个大于11的数组)

数组再内存中是非连续分布的,什么是非连续分布呢,就拿上面的寄存柜来说,比如寄存柜有100个柜子,你有四个东西要寄存,一个柜子只能放一个东西,所以你要四个柜子,非连续分布就是随便在寄存柜中找四个柜子就可以了,不需要连号,比如1589,2489等等都可以

在内存中可以存在任何地方,不要求连续。在电影院几个人可以随便坐。比如十个人去看电影,这十个人可以在电影院随便找十个位置坐下。不需要十个人坐在一起,这十个人每个人都记住下一个人的位置号,这样到时候找人也就不会找不到了

在计算机中也一样的道理,每一个数据都保存了下一个数据的内存地址,通过这个地址找到下一个数据。第一个人知道第二个人的座位号,第二个人知道第三个人的座位号……

增加数据和删除数据很容易。再来个人可以随便坐,比如来了个人要做到第三个位置,那他只需要把自己的位置告诉第二个人,然后问第二个人拿到原来第三个人的位置就行了。其他人都不用动。

不指定大小,扩展方便。链表大小不用定义,数据随意增删。

查找数据时效率低,因为不具有随机访问性,所以访问某个位置的数据都要从第一个数据开始访问,然后根据第一个数据保存的下一个数据的地址找到第二个数据,以此类推。要找到第三个人,必须从第一个人开始问起。

数据比较少;经常做的运算是按序号访问数据元素;数组更容易实现,任何高级语言都支持;构建的线性表较稳定。

对线性表的长度或者规模难以估计;频繁做插入删除操作;构建动态性比较强的线性表。

THE END
1.简易快递柜,快递寄存柜,快递存放柜振耀智能取件柜集成GSM短信发送装置和动态密码生成算法,支持全国手机快速收到通知短信。振耀智能取件柜不需要庞大的云服务器平台运营和网络维护,日常使用方便快捷,且稳定性也高。 了解详情 小区快递柜,公司员工快递柜 振耀智能取件柜,小区快递柜是一款集成大中小箱的多箱型寄存柜,快递员根据物品大小自由选择大小箱型...https://www.szzy456.com/jykdg.html
2.一种智能寄存柜的制作方法随着市场的不断需求,投币柜也出现了变化,不仅仅用于寄存小 件物品,投币更衣柜也使用于各种场所。缺点是,智能化程度不够,使用不方便,功能单一。[0004] 机设条码多功能电子寄存柜:用于超市、卖场、新华书店等公共场合。傻瓜型非接 触卡长效寄存柜:用于小区信报管理、员工更衣柜、租赁柜等。也用于有人员职守的公共场...https://www.xjishu.com/zhuanli/27/CN105575008.html
3.小铁小铁寄存柜是基于移动互联网+物联网技术的智能寄存柜,对传统寄存柜升级改造,小铁无需钥匙、IC卡、纸条,通过手机扫码或人脸识别即可开门,可用于景区、商超、酒吧、交通枢纽、水乐园、游乐场、考场等有寄存储物需求的场所,使用小铁满足用户的寄存储物需求、同时也帮助商https://www.xiaoiron.com/
4.微博搜索一觉睡醒,传来3个重要事情!没有悬念,下周的行情稳了,散户做好准备吧……1、5万股东,关灯吃面!“天价白酒”被指宣传违法,上交所icon向青海春天火速下发监管函有人说,你的运气够背的,10多年了都没有遇到几个涨停板,他入市才2个月,做长线价值投资都遇到2连板了。价值投资的核心是安全边际 ? 展开c ...https://s.weibo.com/weibo/2024%E5%B9%B4%E5%81%9A%E5%8C%BB%E7%96%97%E8%A1%8C%E4%B8%9A?typeall=1&suball=1
1.如何了解购买衣柜的面积计算方法?这种计算方法有哪些实际应用...这种计算方法有哪些实际应用? 在购买衣柜时,了解其面积计算方法不仅有助于合理规划家居空间,还能确保购买的衣柜尺寸与预留空间相匹配。衣柜面积的计算通常涉及两个主要方面:平面面积和立体体积。 首先,平面面积的计算相对直观。对于矩形或正方形的衣柜,只需测量其长和宽,然后将两者相乘即可得到平面面积。例如,一个长2...https://house.hexun.com/2024-11-14/215535429.html
2.寄存柜让物品存储变得更简单智能物品存储柜寄存柜是一种提供临时性物品寄存服务的设备,通常用于超市、商场、机场、火车站、学校、影院、体育馆等公共场所为用户提供便捷的寄存服务。 寄存柜的种类: 1.行李寄存柜:专门用于旅行者寄存行李和物品的柜子,通常位于机场、火车站等交通枢纽。 2.快递寄存柜:快递寄存柜可以作为临时的取件点,方便快递员将包裹寄存,用户...https://blog.csdn.net/Rmwcf/article/details/132411895
3.兰州地铁增设智能寄存柜科普知识“智能寄存柜有信息识别、高清视频采集等功能,把行李放在里面我挺放心的。”游客陈俊和说。 记者了解到,使用智能寄存柜前,用户要进行实名认证。相关认证系统与公安部公民网络身份识别系统联通,可实现权威、有效的用户身份核验。同时,智能寄存柜采用先进的安全算法和加密算法,能够有效保障用户信息安全。 https://ayskjj.anyang.gov.cn/2024/08-22/2446681.html
4.从人脸识别闸机/寄存柜到WiFi智慧路灯,洋湖国家湿地公园全新升级...在整个提质改造工程中,公园也充分考虑游客了的需求,重点提升了游客中心和服务中心等配套服务建筑,公园东、北入口处均增加了人脸识别寄存柜,该寄存柜采用了活体人脸识别功能,游客只要站在智能人脸识别寄存柜前,人脸对准识别的屏幕,人脸识别设备中搭载了双目活体技术的摄像头进行读取人脸,识别成功后,柜门就会自动打开。“...https://www.donews.com/news/detail/4/3155867.html
5.千鸣智能电子储物柜刷卡+指纹联网解决方案(上)千鸣科技自成立以来,专业研发智能联网寄存柜,积累了大量的客户工程案例和实操经验,经过数年的不断完善,研发了一系列针对大型企业、工厂、部队联网储物柜软硬件系统,有效解决了企业寄存物品管理难的问题;我们的寄存柜产品分为:智能员工手机柜(可存放员工小物品),智能员工鞋柜,智能员工更衣...https://www.qianmingyun.com/index.php/news/qian-ming-zhi-neng-dian-zi-chu-wu-gui-shua-ka-zhi-wen-lian-wang-jie-jue-fang-an-shang.html
6.关于寄存柜,以下哪种说法是不正确的?要博士计算灯泡的体积,博士愉快地接收了任务,并着手开始他的工作。一个上午后,爱迪生回来问博士的答案。博士一脸愧疚,说还有些数据在测量,于是,就滔滔不绝地讲他的微积分计算方法,爱迪生不耐烦地说:“怎么要这么复杂?“于是,爱迪生往灯泡里倒满水,用量杯测量就解决问题。 1、这个数学博士犯了什么样...https://www.shuashuati.com/ti/c8a5669019c14ccf86615a6b4e73fcce.html?fm=bdbds881ddede3f639991957e281abbe5bd16
7.平和县公安局智慧执法办案管理中心建设项目招标公告电源:标准6F22 9V电池或充电电池(选配)频率:约25KHz电压:9V(6F22)使用温度:-20℃to-+55℃1个6随身物品抓拍摄像机详见主要技术参数2台7电子签名板1.兼容性:USB 2.02.显示板:黑白FSTN/反射模式3.数位板感应方式:电磁感应技术1台8物品寄存柜(主柜)详见主要技术参数1台9物品寄存柜(副柜)详见主要技术参数1台10...https://www.zbytb.com/s-zb-10725969.html
8.谈谈Alice和Bob之间的小秘密公众号“汽车信息与安全”51fusa功能...也就是我们经常提到的非对称加密,咋个理解法?在《图解密码技术》里面提了个非常有意思的说法解释公钥和私钥的关系。 假如Alice到超市购物要存包,先投一枚硬币,此后空箱子弹开,你放上你的私人物品后,合上寄存柜的门,然后自动弹出一个小纸条,那个小纸条你得拿好,上面的条形码是唯一的,到时拿着纸条对着扫码机扫一...https://www.51fusa.com/client/information/informationdetail/id/1057.html
9.配送方案范文11篇(全文)4.智能收件箱寄存 在超市遍布各处的今天,我们也可以借助超市的临时储物柜模式来寄存我们的快递,买家在购物时选择距离自己最近的智能收件箱点,此区域的快递员可以将所有客户的包裹按照序号,分别放置到不同的智能收件箱中,然后将收件人的身份信息输入到密码锁中,当客户来到智能收件箱时,通过使用自己的身份证,密码机...https://www.99xueshu.com/w/ikeyoft0d8rp.html
10.滨江区智能寄存柜行业发展现状和前景(工资待遇人才需求发展趋...历年招聘工资变化趋势 就业前景(历年职位需求变化) 持平 2024年较2023年 0.001% 占滨江区 历年招聘职位量占比 说明:滨江区智能寄存柜行业发展前景怎么样?有前途吗?好找工作吗? 2024年招聘职位255个,占滨江区0.001%,曲线越向上代表市场需求量越大,就业情况相对较好。数据由各地招聘网站统计而来,仅检索职位名称。 https://www.jobui.com/salary/binjiangqu-all/ind-zhinengjicungui/
11.民生银行科技部2011年笔试不少公司已开始向用户提供云计算服务,令他们可以在互联网远程服务器上储存数据,运行应用。谷歌甚至推出了一款新型笔记本电脑Chromebook,这款设备几乎没有内部储存空间,几乎完全依赖于云计算。在多个设备上储存所有歌曲的音乐“寄存柜”,便是云计算服务的一个典型例证。 https://www.360wenmi.com/f/filewtbso245.html
12.钣金外壳机箱加工青县钣金加工智能柜柜体沧州大鑫电气设备有限公司钣金外壳定制:13785742277,青县钣金加工主要产品有智能柜柜体定制、机箱机柜、钣金外壳、机床护罩外壳、环保设备外壳、储能集装箱外壳、机柜定制及钣金外壳加工为主。钣金加工厂在细节上严把质量关,对产品精益求精,在业内赢得了非常好的口碑。http://www.daxindq.com/