数组与集合和列表的不用
集合(商店)无序,元素可以无关。
列表(购物清单)没有索引。
列表元素在内存中可以不连续,比如链表list。
数组有索引(内存地址,可以用来访问数组的元素)。
数组中的元素在内存中是连续存储的,每个元素占内存大小是相同的。
数组C++中,一组数组数据类型相同,Python可以不同。
数组访问
通过索引
数组查找
从索引为0处开始查找,最坏情况全部遍历一遍还没有。
数组插入
插入数组尾部,只需计算数组长度和位置,计算插入元素的内存地址,将元素放入指定位置。
插入到数组其他位置,需要将指定位置后面的元素后移腾空间,再插入新元素,浪费时间,但是数据结构链表可以解决。
数组删除
数组删除某个位置后,数组有空缺位置,因为数组内存地址连续性,需要进行填补。