研习算法(续一)-数组(javascript版)

235 阅读1分钟

数组简介

  • 数组(Array)是有序的元素序列
  • 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量

数组操作

  • 追加(push)- O(1)
  • 索引 修改/访问(arr[idx] = ...)- O(1)O(n)
  • 插入(insert)- O(n)
  • 删除 - O(n)
  • 合并 (concat) - O(m + n)

数组实现

  • 元素在内存中呈现连续性排列
  • 每个元素可以存储字节数相同数据(或地址)

image.png

卫星数据(存储地址)

  • 数组元素用于存储地址时,这些地址指向的数据被称为卫星数据

image.png

访问/修改-索引 O(1)

image.png

追加元素的复杂度?

image.png

一种分配算法

image.png

插入元素 O(n)

  • 后面的数据需要往前移动 image.png

合并数组 O(m + n)

  • 数组a长度为n,数组b长度为m
  • 空间不足时,需要开辟新的地址空间 image.png

javascript 数组操作api

image.png