数组(Array)

数组(Array)简介

数组是数据结构中最基本、最常用的线性结构之一,它是一种相同数据类型元素的集合,这些元素在内存中连续存储,并通过索引(下标)来访问。

基本特性

  1. 固定大小:大多数编程语言中数组在创建时需要指定大小,且创建后大小不可改变(动态数组除外)
  2. 连续内存:所有元素在内存中是连续存储的
  3. 随机访问:可以通过索引直接访问任意元素,时间复杂度为O(1)
  4. 同质元素:数组中所有元素必须是相同数据类型

数组的操作复杂度

操作 时间复杂度
访问元素 O(1)
插入元素(开头/中间) O(n)(后续元素要移动)
插入元素(末尾) O(1)(如果空间足够直接插入,如果空间不够就插不进去,所以有了扩展的动态数组)
删除元素 O(n)(当前元素置为 null,长度不变)
查找元素(无序) O(n)
查找元素(有序) O(log n)(二分查找)

数组的优缺点

优点

  • 高效的随机访问能力
  • 内存连续,缓存友好
  • 实现简单,几乎所有编程语言都原生支持

缺点

  • 大小固定(静态数组)
  • 插入和删除操作效率低
  • 需要预先知道数据规模

多维数组

数组可以扩展为多维形式:

  • 二维数组(矩阵)
  • 三维数组
  • 更高维数组

动态数组

许多现代编程语言提供了动态数组(如C++的vector,Java的ArrayList,Python的list),它们在底层使用数组实现,但可以自动扩容,提供了更灵活的大小管理。

典型应用

  1. 存储和处理大量同类型数据
  2. 实现其他数据结构(如堆、栈、队列、哈希表等)
  3. 矩阵运算
  4. 排序和搜索算法的实现基础

数组因其简单高效的特点,是计算机科学中最基础也是最重要的数据结构之一。

posted @ 2025-04-26 17:34  CyrusHuang  阅读(169)  评论(0)    收藏  举报