12.8_黑马数据结构与算法笔记Java

目录

[044 递归 e04 冒泡排序2](#044 递归 e04 冒泡排序2)

[044 递归 e05 插入排序1](#044 递归 e05 插入排序1)

[044 递归 e05 插入排序2](#044 递归 e05 插入排序2)

[045 多路递归 斐波那契](#045 多路递归 斐波那契)

[046 多路递归 斐波那契 时间复杂度](#046 多路递归 斐波那契 时间复杂度)

[047 多路递归 斐波那契 兔子问题](#047 多路递归 斐波那契 兔子问题)

[048 多路递归 斐波那契 青蛙跳台阶](#048 多路递归 斐波那契 青蛙跳台阶)

[049 递归 优化 记忆法](#049 递归 优化 记忆法)

[050 递归 爆栈问题](#050 递归 爆栈问题)

[051 递归 尾调用与尾递归](#051 递归 尾调用与尾递归)

[052 递归 尾递归避免爆栈](#052 递归 尾递归避免爆栈)

[053 递归 主定理求时间复杂度 1](#053 递归 主定理求时间复杂度 1)

[054 递归 主定理求时间复杂度 2](#054 递归 主定理求时间复杂度 2)

[055 递归 展开求时间复杂度 1](#055 递归 展开求时间复杂度 1)

[056 递归 展开求时间复杂度 2](#056 递归 展开求时间复杂度 2)

[057 多路递归 e02 汉诺塔1](#057 多路递归 e02 汉诺塔1)

[057 多路递归 e02 汉诺塔2](#057 多路递归 e02 汉诺塔2)

[057 多路递归 e03 杨辉三角1](#057 多路递归 e03 杨辉三角1)

[thinking:Java Arrays.fill()?](#thinking:Java Arrays.fill()?)

thinking:减号,左对齐?


044 递归 e04 冒泡排序2

当排序到一定程度的时候,就不再需要排序了,因为有的本身就已经排好序了。减少排序的次数。

没有发生交换,意味着有序。有发生交换,意味着无序。在每一轮的排序中,i充当无序与有序的界限。每一轮结束后,x被授予i的职责,充当这一轮无序与有序的界限。于是,下一次的递归,就只要排x左边的元素了。

044 递归 e05 插入排序1

当要插入的元素是整个数组中最小的那个,就会出现以下的情况。因此,要设置当i小于0的时候就要退出循环。

044 递归 e05 插入排序2

当要找的元素就是low的时候,就不用这么麻烦了。因此,优化代码。

045 多路递归 斐波那契

046 多路递归 斐波那契 时间复杂度

多少个圆圈,就代表调用了多少次。

047 多路递归 斐波那契 兔子问题

048 多路递归 斐波那契 青蛙跳台阶

049 递归 优化 记忆法

重复计算的值非常多,想要简便运算,就设置数组,储存已经算过的数值。当以后还需要用到这些数值的时候,就不用再计算了,直接从数组中寻找即可。

用空间换取时间。

050 递归 爆栈问题

当传入的数据量特别大的情况下,就会爆栈

051 递归 尾调用与尾递归

052 递归 尾递归避免爆栈

Scala可以通过尾递归的方式使它不要爆栈

@tailrec注解可以帮助我们检查我们的写法是否符合尾递归的写法。

根本解决方案:

053 递归 主定理求时间复杂度 1

找出abc,然后套公式即可以。

054 递归 主定理求时间复杂度 2

055 递归 展开求时间复杂度 1

056 递归 展开求时间复杂度 2

开挂网址

057 多路递归 e02 汉诺塔1

057 多路递归 e02 汉诺塔2

因为第一次和第二次传进去的柱子是不一样的。所以第一次的c.addLast(a.removeLast())和第二次的是不一样的。

057 多路递归 e03 杨辉三角1

thinking:Java Arrays.fill()?

Java Arrays.fill() 方法详解-CSDN博客

thinking:减号,左对齐?

但这个例子是在C中的。

C语言中字符对齐问题_打印多行字符串时如何中心对齐c-CSDN博客

相关推荐
小码哥_常2 小时前
一套自己部署的 IM,客户端是同一份 Flutter
前端·后端
学长毕设5 小时前
基于SpringBoot的实验室资产管理系统
java·spring boot·后端
sbjdhjd5 小时前
网工进阶笔记:H3CSE 园区网全栈技术与协议汇总
网络·笔记·云计算·ssh·网络工程·vlan·aaa
zzu123zsw7 小时前
从臃肿的模板调用到声明式契约:深入 UniHttp 动态代理与多渠道生命周期扩展
java·spring boot·microsoft·unihttp
UIU1147 小时前
P1233 [ICPC 2001 Taejon R] 木棍加工
数据结构·c++·算法·动态规划
源码集结号7 小时前
云诊所门诊系统源码,基于SpringBoot+Vue.js架构,支持多租户设计与Docker容器化部署
java·spring boot·源码·医院信息系统·门诊系统·诊所系统
努力的小雨8 小时前
给 AI 眼镜开发应用有多难?我从零做了一个陪练,还上架了
后端
论文复现现场8 小时前
WRF、FEA 能用 L40S 加速吗?求解器检查、断点恢复与长期运行
java·数据库·算法·wrf·有限元分析·gpu计算·断点续算
ZhengEnCi8 小时前
用 AI 写代码为什么拼到最后还是拼人:算力瓶颈与领域专家提示词的本质差异
算法·架构
啃瓜子的松鼠8 小时前
泛微OAe9-后端二开异步调用
java