数组与链表
数组与链表的优缺点:
| 数组 | 链表 |
---|
内存区域 | 连续的内存区域 | 散乱的内存区域 |
访问数据 | 随机访问(即给的序号即可访问数据),时间复杂度O(1) | 按序访问,时间复杂度 O(n) |
添加元素 | 1. 预留足够大的空间,会发生数据迁移;时间复杂度O(n) 2. 空间如果不够,需要开辟更大的内存空间,然后迁移数据;时间复杂度O(n); | 增加一个节点,时间复杂度O(1) |
删除元素 | 删除某个元素,然后迁移数据;时间复杂度O(n-1) | 删除一个节点,时间复杂度O(1) |
- 数组的优势主要在于支持**随机访问数据**; - 链表的优势在于**添加元素** 和 **删除元素**。