12.8_黑马数据结构与算法笔记Java
2023-12-15 15:29:10
目录
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()?



thinking:减号,左对齐?
但这个例子是在C中的。

文章来源:https://blog.csdn.net/2301_80185446/article/details/134868964
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!