数组是数据结构中的基本结构之一。
    在了解数组之前,先了解一下集合列表的概念。
    集合就是由一个或多个确定的元素所构成的整体。集合中的元素是没有顺序的,而且每个元素的类型也不一定相同。就比如一个鸡圈,里面的小鸡品种可能不一样,而且它们在鸡圈里可以随意走动。
    列表就是一种数据项构成的有限序列,它是线性的,且长度是可变的。就比如45路公交车的站点,是按照顺序排下来的。

    数组就是列表的一种实现形式,它具有列表的特征,也有自己的独特之处。
    首先就是索引,数组会通过索引来标识每项数据在数组中的位置,大部分语言中数组的索引是从0开始递增的。
    image.png
    其次数组在计算机中是连续存储的,且每个元素占用同样大小的内存。

    我们可以先把计算机内存看成一些分割好的格子,每个格子都有一个唯一的地址。
    而存储数组的时候,程序就会在计算机中申请一段连续的空间来存放数组中的元素,并且会记录下来索引0的空间地址,那么其他元素的地址就可以根据索引0的地址加上元素的索引来获得了。
    例如索引0 的位置是 0x001,那么索引为8的元素的地址就是0x009了。

    数组的操作
    读取元素
    数组是通过索引来读取元素的,就像上面说的,只要知道索引0的地址,那么其他元素的地址就可以获取到,从而根据地址获取到存储的数据。所以它的时间复杂度就是常数级别的,O(1)

    查找元素
    当我们并不知道数组中都包含那些元素时,想要确定数组中是否包含某个值时,可能就