Python 数据结构和算法 04| 如何理解基础的数据结构——数组

我们之前有玩过 Numpy, 可以创建数组:

可以看到,数组是用来存储数据的,那它是如何存储数据的呢?什么情况下我们可以使用数组这种数据结构来存储数据?什么时候使用它效率比较高呢?

什么是数组?

根据刚刚这个 arr 来画个图:

当我们创建这个数组的时候,实际上是计算机给它分配了这么一块空间,其中每一块 “小空间” 可以存放具体的数据,“小空间”之间是连续的,而且,每个 “小空间”都有对应的地址值,比如这样:

这样,你的计算机就可以通过这些地址值来访问相应的数据。

从而可以通过索引来得到相应的数据(下标从 0 开始):

在数组中,分配到的内存是连续的,也就是说,每个小空间是连在一起的,比如以下这块黄色区域代表内存,当我们创建一个刚刚的数组时,在这里面会找到一整块连续的内存,分配给它使用:

而不可以是这样的:

本文隐藏内容 登陆 后才可以浏览
从上面你应该可以看出来,数组这种数据结构在访问数据的时候,效率是很高的,而涉及到对数组里面的数据进行增删操作,效率就不是很高了。有一个与之对应的就是链表了,如何理解呢?下篇告诉你!

发表回复