跳到主要内容

数组

数组是什么?​

  • 定义: 一串相同类型元素在连续内存中的顺序存储;
  • 逻辑结构: 线性结构;
  • 物理结构: 连续空间存储;

数组的下标访问为什么是 O(1)?​

  • 定位公式: 元素地址 = 首地址 + 下标 × 元素大小;
  • 结果: 一次乘法加一次加法即可定位, 与元素数量无关;

数组有哪些优点和缺点?​

说明
优点通过内存地址直接访问元素, 时间复杂度 O(1)
缺点一初始化后长度不可变: 超出范围的元素会丢失, 预留过长则内存浪费
缺点二插入与删除需要搬移后续元素, 时间复杂度 O(n)

插入与删除的代价来自哪里?​

  • 在位置 i 插入: 下标 [i, n-1] 的元素整体后移一位;
  • 删除位置 i: 下标 [i+1, n-1] 的元素整体前移一位;
  • 在末尾插入或删除不需要搬移, 为 O(1);