算法专题
- 时间复杂度
- 数据结构的使用
- 经典算法思想
- 树的概念与操作
- 搜索的实践与应用
- 动态规划(一)
- 综合训练
数据结构
集合、列表和数组区分
数组操作
1、读取元素
(1)方式:访问索引(下标)来读取,索引一般从0开始。
(2)过程:先在内存中为数组申请一段连续的空间,并且会记下索引为0处的内存地址,之后由记下的索引为0处内存地址 + 索引值 = 目标元素的地址,即找到目标元素。
(3)时间复杂度:O(1)
2、查找元素
(1)过程:从数组开头逐步向后查找。如果数组中的某个元素为目标元素,则停止查找;否则继续搜索直到到达数组的末尾。
(2)时间复杂度:O(N),N 为数组的长度。
3、插入元素
(1)末尾插入
(2)首尾间插入用链表省时
4、删除元素
(1)删除掉数组中的某个元素后,数组中会留下空缺的位置,而数组中的元素在内存中是连续的,这就使得后面的元素需对该位置进行填补操作。
(2)时间复杂度:O(N),N 为数组的长度。
注:只考虑最坏情况的时间复杂度