2021.04.20回顾
1 什么是数据结构?
数据结构 + 算法 = 程序
数据结构:包含逻辑结构和存储结构
算法:设计
2 什么是线性结构:向线一样的结构,这些结构包括:数组、链表、队列、栈
3 线性结构的特点:
a.由N个同类型的元素组成
b.除了第一个元素和最后一个元素之外,每个元素有且仅有一个前驱和后继
c.可以访问任意元素
d.可以删除或者修改任意位置的元素
e.支持动态扩容,长度可以动态的增减
f.可以获取任何一个元素的前驱和后继
4 线性结构的存储结构(实现方式)
a.顺序表:数组
b.链表:链表
2021.04.22
1 内容回顾
手写ArrayList
- add(index,e):向指定位置处新增元素
- addFirst(e):在头部添加元素
- addLast(e):在末尾添加元素
- get(index):根据索引返回该索引处的值
- find(e):找到元素e的索引
- set(index,e):修改索引处的值
- remove(index):移除指定位置的值
- removeFirst:移除首元素
- removeLast:移除末尾元素
强调:使用顺序表实现的线性表:所谓的顺序表,物理空间一定是连续的
我们的插入和删除、修改只能在0–size的范围内操作
2 复杂度分析
复杂度分析:判断/评估 一个程序的优劣
- 时间复杂度:这段代码执行需要消耗的时间(预估)
- 空间复杂度:这段代码执行需要消耗的内存资源、CPU资源、硬盘资源、网络资源
2.1 时间复杂度
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eM3vZtgu-1619340687867)(assets/1619060708124.png)]
全称:渐进时间复杂度
时间复杂度