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

目录

044 递归 e04 冒泡排序2

044 递归 e05 插入排序1

044 递归 e05 插入排序2

045 多路递归 斐波那契

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

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

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

049 递归 优化 记忆法

050 递归 爆栈问题

051 递归 尾调用与尾递归

052 递归 尾递归避免爆栈

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

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

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

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

057 多路递归 e02 汉诺塔1

057 多路递归 e02 汉诺塔2

057 多路递归 e03 杨辉三角1

thinking:Java Arrays.fill()?

thinking:减号,左对齐?


044 递归 e04 冒泡排序2

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

12.8_黑马数据结构与算法笔记Java_第1张图片

12.8_黑马数据结构与算法笔记Java_第2张图片

12.8_黑马数据结构与算法笔记Java_第3张图片

12.8_黑马数据结构与算法笔记Java_第4张图片

12.8_黑马数据结构与算法笔记Java_第5张图片

12.8_黑马数据结构与算法笔记Java_第6张图片

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

12.8_黑马数据结构与算法笔记Java_第7张图片

044 递归 e05 插入排序1

12.8_黑马数据结构与算法笔记Java_第8张图片

12.8_黑马数据结构与算法笔记Java_第9张图片

12.8_黑马数据结构与算法笔记Java_第10张图片

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

12.8_黑马数据结构与算法笔记Java_第11张图片

 

12.8_黑马数据结构与算法笔记Java_第12张图片

044 递归 e05 插入排序2

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

12.8_黑马数据结构与算法笔记Java_第13张图片

12.8_黑马数据结构与算法笔记Java_第14张图片

045 多路递归 斐波那契

12.8_黑马数据结构与算法笔记Java_第15张图片

12.8_黑马数据结构与算法笔记Java_第16张图片

 

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

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

12.8_黑马数据结构与算法笔记Java_第17张图片

12.8_黑马数据结构与算法笔记Java_第18张图片

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

12.8_黑马数据结构与算法笔记Java_第19张图片

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

12.8_黑马数据结构与算法笔记Java_第20张图片

049 递归 优化 记忆法

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

用空间换取时间。

12.8_黑马数据结构与算法笔记Java_第21张图片

12.8_黑马数据结构与算法笔记Java_第22张图片

 

050 递归 爆栈问题

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

12.8_黑马数据结构与算法笔记Java_第23张图片

051 递归 尾调用与尾递归

12.8_黑马数据结构与算法笔记Java_第24张图片

12.8_黑马数据结构与算法笔记Java_第25张图片

12.8_黑马数据结构与算法笔记Java_第26张图片

12.8_黑马数据结构与算法笔记Java_第27张图片

12.8_黑马数据结构与算法笔记Java_第28张图片

052 递归 尾递归避免爆栈

12.8_黑马数据结构与算法笔记Java_第29张图片

12.8_黑马数据结构与算法笔记Java_第30张图片

12.8_黑马数据结构与算法笔记Java_第31张图片

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

12.8_黑马数据结构与算法笔记Java_第32张图片

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

12.8_黑马数据结构与算法笔记Java_第33张图片

12.8_黑马数据结构与算法笔记Java_第34张图片

根本解决方案: 

12.8_黑马数据结构与算法笔记Java_第35张图片

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

12.8_黑马数据结构与算法笔记Java_第36张图片

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

12.8_黑马数据结构与算法笔记Java_第37张图片

12.8_黑马数据结构与算法笔记Java_第38张图片

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

12.8_黑马数据结构与算法笔记Java_第39张图片

12.8_黑马数据结构与算法笔记Java_第40张图片

12.8_黑马数据结构与算法笔记Java_第41张图片

 

12.8_黑马数据结构与算法笔记Java_第42张图片

 

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

12.8_黑马数据结构与算法笔记Java_第43张图片

 

12.8_黑马数据结构与算法笔记Java_第44张图片

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

12.8_黑马数据结构与算法笔记Java_第45张图片

开挂网址12.8_黑马数据结构与算法笔记Java_第46张图片

057 多路递归 e02 汉诺塔1

12.8_黑马数据结构与算法笔记Java_第47张图片

12.8_黑马数据结构与算法笔记Java_第48张图片

 

12.8_黑马数据结构与算法笔记Java_第49张图片

12.8_黑马数据结构与算法笔记Java_第50张图片

 

057 多路递归 e02 汉诺塔2

12.8_黑马数据结构与算法笔记Java_第51张图片

 

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

12.8_黑马数据结构与算法笔记Java_第52张图片

12.8_黑马数据结构与算法笔记Java_第53张图片

 

12.8_黑马数据结构与算法笔记Java_第54张图片

12.8_黑马数据结构与算法笔记Java_第55张图片

057 多路递归 e03 杨辉三角1

12.8_黑马数据结构与算法笔记Java_第56张图片

12.8_黑马数据结构与算法笔记Java_第57张图片 

12.8_黑马数据结构与算法笔记Java_第58张图片12.8_黑马数据结构与算法笔记Java_第59张图片 

thinking:Java Arrays.fill()?

12.8_黑马数据结构与算法笔记Java_第60张图片

12.8_黑马数据结构与算法笔记Java_第61张图片

12.8_黑马数据结构与算法笔记Java_第62张图片

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

thinking:减号,左对齐?

但这个例子是在C中的。

12.8_黑马数据结构与算法笔记Java_第63张图片

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

你可能感兴趣的:(笔记,算法,数据结构,java,后端)