鱼C论坛

 找回密码
 立即注册
查看: 959|回复: 6

[见证历程] [Python算法学习Day3]2.1-2.22 数字与链表 & 计算机内存工作原理

[复制链接]
发表于 2022-10-2 15:33:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
2.1内存的工作原理
        计算机内存工作原理
            举例:
                假设你去音乐会需要寄存东西,寄存柜每一个抽屉可以放一个东西,你有两个东西需要寄存
                    所以需要占用两个柜子这个就是计算机内存工作原理. 计算机就像是这个抽屉的合集有每个抽屉都有地址
        
        需要将数据存储到内存时,你请求计算机提供存储空间,计算机给你一个存储地址
        有两种基本方式——数组和链表。但它们并非都适用于所有的情形,因此知道它们的差别很重要。接下来
        介绍数组和链表以及它们的优缺点。



2.2.1 链表
    链表中元素可存储在内存的任何地方,链表的每个元素都存储了下一个元素的地址,从而使一系列随机的内存串联在一起
    可以理解为寻宝游戏去完第一个地址又要去另外一个地址
        缺点: 在需要读取链表中第一个元素时,不能直接读取因为不知道该元素的地址,必须从第一个元素开始访问直到获得最后一个元素地址为止


2.2.2数组

    数组: 代表数据在内存中是相连的
        在数组中添加新元素是非常麻烦的,如果没有足够的空间就需要移到内存其他的地方,因此添加元素速度会很慢
        如果使用预留空间的话会有两个缺点:
            1. 额外的空间用不上浪费内存
            2. 如果元素超过了预留位置仍然要转移
        因此遇到以上情况更好的办法是使用链表


练习:

    2.1 假设你要编写一个记账的应用程序你每天都将所有的支出记录下来,并在月底统计支出,算算当月花了多
        少钱。因此,你执行的插入操作很多,但读取操作很少。该使用数组还是链表呢?
   
    应该使用链表,因为需要很多的插入操作,数组不适合应用在很多插入元素的应用中,因为会非常的慢;反而
        读取操作很少这让链表更适合因为链表插入元素会比数组快很多.



--------------------------------
每日一练 Leetcode: 1. Two Sum

游客,如果您要查看本帖隐藏内容请回复


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-3 23:00:38 | 显示全部楼层

回帖奖励 +5 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-3 23:06:35 | 显示全部楼层

回帖奖励 +5 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-4 11:54:59 | 显示全部楼层

回帖奖励 +5 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-5 07:59:34 | 显示全部楼层

回帖奖励 +5 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-5 08:47:22 | 显示全部楼层

回帖奖励 +5 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-11-4 11:32:23 | 显示全部楼层
只想领个币
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 06:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表