概念
数据(Array)是有限个相同类型的变量所组成的有序集合,数组中的每一个变量被称为元素,数组是最位简单、最为常用的数据结构。
数组下标从0开始。根据偏移量计算从0开始更好算。
存储原理
数组用一组连续的内存空间来存储一组具有相同类型的数据。
时间复杂度
查询:O(1),随机访问
更新:O(1),随机访问
插入:O(n),插入数组扩容的的时间复杂度是O(n),插入并移动圆度的时间复杂度也是O(n)
删除:O(n),只涉及元素的移动
优点
数组拥有非常高效的随机访问能力,只要给出下标,就可以用常量时间找到对应元素
缺点
(1)插入和删除元素方面,由于数组元素连续紧密地存储在内存中,插入、删除元素都会导致大量元素被迫移动,影响效率。
(2)申请的空间必须是连续的,也就是说即使有空间也可能因为没有足够的连续空间而创建失败。如果超出范围,需要重新申请内存进行存储,原空间就浪费了。
应用
数组是基础的数据结构,应用太广泛了,ArrayLIst、Redis、消息队列等等。