2025-07-08-复杂度+包装类+泛型
本文章是学习数据结构前置知识,需要了解相关概念, 学会计算时间/空间复杂度
复杂度
- 复杂度计算步骤
- 算出总次数
- 任何常数次变为 1,然后保大舍小
- 将最高次系数变为 1
- 例子:
- 计算图中冒泡排序的时间复杂度

- 计算总次数:N + N - 1 + ... + 1 ->
- 保大舍小,变为
- 把系数变为 1,最终就是
- 计算总次数:N + N - 1 + ... + 1 ->
- 计算通过递归的斐波那契的时间复杂度

- 判断递归深度:N - 1
- 判断每次深度大约执行的次数:
- 利用等比数列求和公式
求出总数 
- 计算图中冒泡排序的时间复杂度
- 概念:
- 时间复杂度:函数运行最坏的情况(快排除外)下,代码执行的次数
- 空间复杂度:函数临时占用的空间,与参数的类型无关
泛型
解决问题
- 没有泛型,用
Object类过于混乱的问题,图片中就是value的值太过混乱
- 没有泛型,用
语法规则(2025-07-19的课程)
- 泛型方法

<T>在里面是起到声明的作用的,不然编译器就不认为T是泛型,而是单纯的语法错误
- 通配符
- 应用场景:当其他类调用泛型类的时候,为了通用方法,就用通配符
?表示那些不确定的类型
- 上届:
- extends 在获取变量的时候使用

- extends 在获取变量的时候使用
- 下届:
- super 往往在存储变量的时候使用

- super 往往在存储变量的时候使用
- 课堂老师代码错误复现(55:30 左右的)
- 错误代码:

- 原因:老师传入
Message的是Father对象,Father对象自然就不能强转为它的子类Son - 正确代码:只要把
Father对象变为Son即可(只要强转的对象是new的对象的父类或本身即可)
- 错误代码:
- 应用场景:当其他类调用泛型类的时候,为了通用方法,就用通配符
- 其他问题:
问题 解决方法 解决图片 多继承 
把 T变为K, 把Integer变为V是不是就很想Map中的泛型了? 图中Integer就是一个关键字而已,叫什么无所谓
- 泛型方法