一、是什么
数组是一种线性表结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。
首先我们需要理解一下这句话,以便于我们更好地理解数组。
1.1 线性表
线性表是n个具有相同特性的数据元素的有限序列。每个线性表上的数据最多只有向前和向后两个方向。
1.2 连续的内存空间
比如现在需要创建一个10MB大小的数组,但是如果内存中没有连续足够大的空间,即便内存的剩余总空间大小超过10MB,我们也没有办法创建。
1.3 具有相同类型的数据
这一点比较好理解,一个数组只能存储一种类型的数据
二、随机访问
首先先来看一下这个寻址公式
arrry[i]_address = base_address + i * data_type_size
上面我们已经介绍过,数组必须要连续的内存空间,因此第i个元素的地址就可以根据上面的公式计算得到。无论这个元素位于数组的什么位置都可以很快找到,时间复杂度是O(1).