集合
数组
- 定义:
- 列表的实现方式之一,同时具有列表的特征和自己的特征。
- 和列表在宏观上的区别为:数组有索引,列表没有索引。
- 在内存中连续存储,索引为0的内存地址会被记下。
- 一次的空间是固定的,超过需要重新申请
- 优势:因为是有序的,所以进行随机访问很方便
- 劣势:在中间插入时会导致后面的重新排列,在最后插入时也可能需要重新申请内存
链表
- 定义:可以在内存中随意存储,链表的每一项中存储的是后一项的地址
- 优势:不需要紧挨着存储,插入操作很方便
- 劣势:无法支持随机访问,比如要知道索引9的元素,必须要遍历之前的所有元素
数组 | 链表 | |
---|---|---|
读取 | O(1) | O(n) |
查找 | O(n) | |
插入 | O(n) | O(1) |
删除 | O(n) | O(1) |