数组是数据结构中的基本结构之一。
在了解数组之前,先了解一下集合、列表的概念。集合就是由一个或多个确定的元素所构成的整体。集合中的元素是没有顺序的,而且每个元素的类型也不一定相同。就比如一个鸡圈,里面的小鸡品种可能不一样,而且它们在鸡圈里可以随意走动。列表就是一种数据项构成的有限序列,它是线性的,且长度是可变的。就比如45路公交车的站点,是按照顺序排下来的。
数组就是列表的一种实现形式,它具有列表的特征,也有自己的独特之处。
首先就是索引,数组会通过索引来标识每项数据在数组中的位置,大部分语言中数组的索引是从0开始递增的。
其次数组在计算机中是连续存储的,且每个元素占用同样大小的内存。
我们可以先把计算机内存看成一些分割好的格子,每个格子都有一个唯一的地址。
而存储数组的时候,程序就会在计算机中申请一段连续的空间来存放数组中的元素,并且会记录下来索引0的空间地址,那么其他元素的地址就可以根据索引0的地址加上元素的索引来获得了。
例如索引0 的位置是 0x001,那么索引为8的元素的地址就是0x009了。
数组的操作
读取元素
数组是通过索引来读取元素的,就像上面说的,只要知道索引0的地址,那么其他元素的地址就可以获取到,从而根据地址获取到存储的数据。所以它的时间复杂度就是常数级别的,O(1)
查找元素
当我们并不知道数组中都包含那些元素时,想要确定数组中是否包含某个值时,可能就
