yanghongchen666 发表于 2022-10-2 15:33:52

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

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



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


2.2.2数组

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


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



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

**** Hidden Message *****

风一样的僧 发表于 2022-10-3 23:00:38

{:10_254:}

hornwong 发表于 2022-10-3 23:06:35

{:5_108:}

qhxzf 发表于 2022-10-4 11:54:59

{:5_101:}

Passepartout 发表于 2022-10-5 07:59:34

{:5_108:}

1molHF 发表于 2022-10-5 08:47:22

{:10_256:}

wangyanren 发表于 2022-11-4 11:32:23

只想领个币
页: [1]
查看完整版本: [Python算法学习Day3]2.1-2.22 数字与链表 & 计算机内存工作原理