什么叫做数组随机访问?
什么叫做数组随机访问?
目录
一、什么是数组随机访问?
这是一个数组:长度为10,下标从0~9。
现在往数组内填充一组数据:
我想去数据1,怎么取?
我们是人,我们看二维的表格,一眼就能看出来,到下标为7的表格中取。
可是,计算机跟人不一样,它看不到整个数组的结构
因此,计算机只能从下标0开始,从前往后,一个一个去对比
这就叫做线性遍历。
可是这样太慢,
能不能快一点?
可以,计算机不知道在哪里,可是我们知道。
所以,我们告诉计算机,到下标为7的地方去取
于是,计算机就直接到初始位置0+7的位置取数据。
同理,我要取任意数据,都可以通过初始位置+下标的方式,直接访问对应位置,获取数据。
于是,我想取哪个数据,就取哪个数据
上述就是对数组随机存储的最朴素的理解。
题外话:
数组的下标位置为什么不从1开始计算?
而是是从0开始?
就是为了 初始位置+下标 方便访问。
二、为什么计算机可以随机访问?
当你开始思考这个问题,在某种程度上,你就已经和历史上最伟大的计算机科学家们站在一个高去思考问题了。只是唯一的不同点是,他们拥有深厚的知识储备和深刻的学科理解,外加一点灵感。
计算机之所以能够进行随机访问数据,本质是因为有硬件结构支持,也就是我们常说的磁盘。
在刚开始问世的计算机时代,计算机就不可以进行随机访问,只能进行顺序访问。
什么叫做顺序访问?
就是,1 2 3 4 5 6 ,我要访问6,必须先访问1 2 3 4 5;
我要访问2 ,必须先访问1,如此类推。
可是这样真的很慢
慢,就有人动脑子
我能不能我想访问哪个数据就访问那个数据?
于是科学家说:试一试吧
后来就想出来,传统的硬件结构无法支持随机访问
于是搞了一个新的,先是磁带,后来是磁盘
后来笔记本开始发达,于是有了硬盘。
有了硬件支持,再开发相应的软件进行管理
于是,就可以进行随机访问了。
(我很喜欢我们老师的一句话:计算机是管理的艺术。)
上述这个过程是一个比较复杂的过程,经过了几代人很长时间的摸索。
其实这也就是计算机组成原理中的关于数据存储的知识。
如果你想好好的了解,可以去把408的计算机组成原理看一看。
事实上绝大部分的计算机知识,是对底层的软硬件进行了屏蔽。
也就是说,我们对底层的硬件结构等是不关心,他们对我们来说是看不见的,透明的。
我们所需要关心的,事实上只有逻辑上的实现。
因此,我们任何人都站在前人的肩膀上看世界。
我们无时无刻都不在享受着历代科学家的贡献。
计算机这个学科,我们程序员是最上游的技术人员。
可是计算机本质来说,就是一个机器。
机器得有人来造。
把计算机造的更好,就是一些人做的事情。
例如芯片CPU,存储器等。
因为计算机本质是电的二相,由0和1这两态进行某种规则下的复杂的组合,进而衍生出庞大的计算机逻辑体系。
1位的0、1,只能表示2种不同的东西
2位的0、1,可以表示4种不同的东西
3位的0、1,可以表示8种不同的东西
....
n位的0、1,可以表示2^n 种不同的东西
当n趋近无穷大,那么就几乎可以模拟我们这个世界。
我们做的所有工作,事实上就是映射,仅此而已。
更多推荐
所有评论(0)