一、什么是数组?
数组(Array) 是一种很常见的数据结构。它由相同类型的元素(element)组成,并且是使用一块连续的且有限的内存来存储。
二、特点
A. 每个元素的内存地址在空间存储上是连续的;
B. 每一个元素类型相同,所以占用空间大小相同;
C. 首元素地址即数组地址,知道首元素地址,知道每个元素占用的空间大小,又知道下标,所以通过计算可以知道某个下标上元素的内存地址。
三、优点
根据它的特性,我们可以了解到数组的优点:随机访问快。
无论是访问第10个元素,还是访问第10000个元素,我们都可以快速地计算出它的内存地址并直接定位。
四、缺点
增删效率较低,可能会涉及到大量元素前移或者后移的操作。
五、和链表对比,链表的特点
A. 使用不连续的内存空间来存储数据;
B. 查找一个节点或者访问特定位置的节点的时候要顺序遍历,复杂度为 O(n);
C. 插入和删除操作的复杂度为 O(1)
六、一些算法题
1.数组有关
- LeetCode:283. 移动零
- LeetCode:11. 盛最多水的容器
- LeetCode:26. 删除有序数组中的重复项
- LeetCode:66. 加一
- LeetCode:15. 三数之和
- LeetCode:189. 轮转数组
- LeetCode:88. 合并两个有序数组
网友评论