| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 1.递归算法 -> 正文阅读 |
|
[数据结构与算法]1.递归算法 |
递归算法的两个特点: 1.调用自身? 2.结束条件 判断下面4个函数哪个是正确的递归: 答案:1、 2是错误的,1缺少结束条件,2结束条件无法起作用。思考:3、 4有什么区别 ?事实证明,3,4区别如下:这个是3 ? 这个是4 ? ?原因如下:因为前者是先输出再递归后者是先递归再输出,如下图,前者在原本的框内输出再创造一个新的框,后者是先创造新的框在到尽头再回来 ?下面看一个实例 具体规则如上图描述 不妨先讨论简单情况:当n=3时,会经历以下过程: 1.小:A-->C? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2.中:A-->B? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?把中小这个整体从A到B 3.小:C-->B ——————————————————————————————————————————— 4.大:A-->C? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 把大从A到C ——————————————————————————————————————————— 5.小:B-->A 6.中:B-->C? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?把中小这个整体从B到C 7.小:A-->C 就是把最底下的大看作一个整体,把剩余的中和小看作一个整体,相当于把这个问题简化成 1.把中小这个整体从A到B 2.把大从A到C 3.把中小这个整体从B到C 把n改为一个未知量即可得到以下情况: 我们会发现,递归算法的本质就是把一个规模为n的问题简化为一个规模为n-1的同样的问题。? 则可以列出表达式 ?算法实现如下: 个人心得:在递归算法中,列出表达式,然后直接码上去,问题就迎刃而解了,譬如wzoi.cc上有这样一个问题 ?列出表达式:f(x)=f(x-1)+k ? ? ? ? ? ? ? ? ? ? ? ?f(1)=a 代入即可 ? ?这个是自己做的程序,因为wzoi.cc暂不支持python的测评,wzoj上面又还没有更新到这道题,故只测试了所给测试点数据,结果正确。若有差强人意之处,还望各位大佬指教。 部分图片参考自b站路飞学城python算法学习视频,本文仅供个人学习使用,特此声明 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 8:45:38- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |