数组

  • 线性表结构
  • 使用一组连续的内存空间
  • 相同类型数据

线性表结构

数据像一条线一样的结构,只有前,后两个方向.如链表,队列,栈等

连续内存空间

  • 随机访问
  • 插入,删除就要做大量的迁移工作

233517526-8c2eebaf-a4ec-4821-b410-0348c697da76

内存地址: a[i]_address = base_address + i * data_type_size

低效的“插入”和“删除”

如果我们在数组最后插入或删除,复杂度为 O(1),如果在中间为 O(n)

优化

插入:如果数组只是数据集,数据没有规律的情况下,我们可以把插入变成移动.
233517689-105e8010-8c2e-4d10-9c7b-6d53b027a65d

删除:记录删除数据,将多次删除合并为一次删除.
233517704-a8e0e995-be70-4d08-a3d3-4b669646197d

越界问题

访问到不属于该数组的一块内存地址上,造成 bug.

posted @ 2025-11-17 18:19  jinzhepro  阅读(5)  评论(0)    收藏  举报