数组-最基础的数据结构

1、简介:

数组,一种线性表数据结构,他用一组连续的内存空间,来存储一组具有相同类型的数据。官方的定义都是越看越懵逼,接下来我就用最简单的图来给大家讲解。

2、支持随机访问

数组最大的特点就是支持下标随机访问。那我们就来看看他为什么会有这个特点的。

第一是线性表。顾名思义,线性表就是数据排成像一条线一样的数据结构,每个线性表上的额数据只有前后两个顺序。如下图:


数组


第二就是连续的内存空间和相同类型的数据。相同类型的数据就可以使数组中每个数据占用一样的内存空间。而存储在连续的内存空间内,就会使这批数据的内存地址是连续存在的。我画了一个图,你可以看一下,比较好理解。


数组

我们拿一个长度为 10 的 int 类型的数组 int[] a = new int[10] 来举例。在我画的这个图中,计算机给数组 a[10],分配了一块连续内存空间 1000~1039,其中,内存块的首地址为 base_address = 1000。

所以内存地址的计算公式如下:

a[i]_address = base_address + i * data_type_size

其中data_type_size表示数组中每个元素的大小,数组中存储的是int类型的数据,所以每个data_type_size就为4个字节。所以现在我们想要下标为2元素数据。我们只需要根据公式a[2]_address = 1000 + 2 * 4 =1008  就可以找到那个数据了。

面试时经常被问到“数组与链表有什么区别?”一般回答:数组适合查询,链表适合增删。这个其实是不准确的,数组最大的特点是支持下标随机访问。

下面我提一个思考题,二维数组内存地址计算公式是什么?欢迎大家留言

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容