数组(Array)
数组(Array)简介
数组是数据结构中最基本、最常用的线性结构之一,它是一种相同数据类型元素的集合,这些元素在内存中连续存储,并通过索引(下标)来访问。
基本特性
- 固定大小:大多数编程语言中数组在创建时需要指定大小,且创建后大小不可改变(动态数组除外)
- 连续内存:所有元素在内存中是连续存储的
- 随机访问:可以通过索引直接访问任意元素,时间复杂度为O(1)
- 同质元素:数组中所有元素必须是相同数据类型
数组的操作复杂度
| 操作 | 时间复杂度 |
|---|---|
| 访问元素 | O(1) |
| 插入元素(开头/中间) | O(n)(后续元素要移动) |
| 插入元素(末尾) | O(1)(如果空间足够直接插入,如果空间不够就插不进去,所以有了扩展的动态数组) |
| 删除元素 | O(n)(当前元素置为 null,长度不变) |
| 查找元素(无序) | O(n) |
| 查找元素(有序) | O(log n)(二分查找) |
数组的优缺点
优点:
- 高效的随机访问能力
- 内存连续,缓存友好
- 实现简单,几乎所有编程语言都原生支持
缺点:
- 大小固定(静态数组)
- 插入和删除操作效率低
- 需要预先知道数据规模
多维数组
数组可以扩展为多维形式:
- 二维数组(矩阵)
- 三维数组
- 更高维数组
动态数组
许多现代编程语言提供了动态数组(如C++的vector,Java的ArrayList,Python的list),它们在底层使用数组实现,但可以自动扩容,提供了更灵活的大小管理。
典型应用
- 存储和处理大量同类型数据
- 实现其他数据结构(如堆、栈、队列、哈希表等)
- 矩阵运算
- 排序和搜索算法的实现基础
数组因其简单高效的特点,是计算机科学中最基础也是最重要的数据结构之一。

浙公网安备 33010602011771号