数组

最基本的数据结构之一,在内存中连续存储相同类型的元素,支持随机访问。

核心特性

  • 连续内存:所有元素在内存中连续排列
  • 随机访问:通过「首地址 + 索引 × 元素大小」公式,在 $O(1)$ 时间内访问任意元素
  • 固定大小:静态数组在创建时确定大小,不可改变(动态数组通过包装实现可变)

类型

静态数组

  • 大小固定,声明时确定
  • 内存连续,效率高
  • 不适合大小不确定的场景

动态数组

  • 底层是静态数组 + 自动扩缩容机制
  • 详见 动态数组 概念页

环形数组

基本操作时间复杂度

操作 时间复杂度 说明
查/改(给定索引) $O(1)$ 随机访问
末尾增/删 $O(1)$ 直接操作
中间增/删 $O(N)$ 需要数据搬移
查找元素 $O(N)$ 需要遍历

相关概念

  • 动态数组:在静态数组外封装扩缩容机制
  • 链表:常与数组对比的线性结构

Interactive Graph