数据结构存储都在内存上吗?为什么不在硬盘上呢?
我在看《数据结构》的顺序表的物理结构,里面提到使用数组的方式,在内存中开辟空间,然后想到问题————为什么只在内存上,而不在硬盘上呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我在看《数据结构》的顺序表的物理结构,里面提到使用数组的方式,在内存中开辟空间,然后想到问题————为什么只在内存上,而不在硬盘上呢?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(5)
存在硬盘上的数据结构叫数据库
这问题跟数据结构没什么关系……
内存快啊。以CPU的速度而言内存都跟不上何况硬盘。
对于短时间任务而言,即使断电内存里数据丢失,从头计算的时间代价也是完全耗得起的。何况断电丢数据是偶发事件。为了这个把每个步骤都把运算过程保存到硬盘上会把整体的时间拖慢的。对于长时间任务也是阶段性存储。
内存的读写速度远远快于硬盘的读写速度,如果内存的空间足够的话(事实上,除大数据处理的情况外,大多情况下内存都够用),把数据结构存储在内存空间内可以保证程序的效率。然而当程序需要的数据结构足够大,以至于比机器本身内存还大,这就要考虑把部分数据存储在硬盘上,而把常用的那部分数据留在内存中,尽可能的保证程序的效率,内存和硬盘间的数据交换则涉及到比较复杂的算法来保证最“常用”的数据留在内存中。
我的理解是这样的,数据结构是我们程序中最常用的,也是执行过程中进行操作数据的一个载体,所以需要保存到内存中,数据以临时的为主,我们对数据操作大多时候也是从硬盘或者数据库读取到内存中进行相应的操作。放在硬盘或者数据库的数据,是通过I/O过后固化的数据,永久保存。。。
硬盘上存储的只是我们编写的程序源代码,而真正程序的执行是在内存中进行的,这里所说的一切空间分配都指的是内存空间。