分治算法和二分搜索算法.ppt
《分治算法和二分搜索算法.ppt》由会员分享,可在线阅读,更多相关《分治算法和二分搜索算法.ppt(12页珍藏版)》请在三一办公上搜索。
1、Fibonacci数列:1,1,2,3,5,8,13,迭代法求Fibonacci数列的前20项,#include void main()int i,f1=1,f2=1,f3;printf(%8d%8d,f1,f2);for(i=3;i=20;i+)f3=f1+f2;f1=f2;f2=f3;printf(%8d,f3);if(i%4=0)putchar(n);,迭代法在已知数列前2项的基础上,从第3项开始,依次向后计算,得出数列的每一项,思考:怎样用递归的方法求解?,2-1 递归法求Fibonacci数列,定义Fibonacci数列的递归数学模型:,递归法求Fibonacci数列,递归的终止条件
2、,递归公式,int Fib(int n)if(n0)printf(error!);exit(0);else if(n=1)return 1;else return Fib(n-1)+Fib(n-2);,2-1 递归法求Fibonacci数列,用递归法求Fibonacci数列,Fib(4),n=4时,递归法进行了多少次函数调用?,n=20时,要进行21891次递归调用,讨论:求Fibonacci数列的迭代法和递归法谁好?,2-1 递归法求Fibonacci数列,第2讲 分治法和二分搜索算法,本讲内容:(1)分治法的基本思想(2)二分搜索技术,分治法的基本思想,分治法的思想:分而治之。将一个规模为
3、n的问题分解为k个规模较小的子问题,这些子问题互相独立且与原问题相同,(如果子问题的规模仍然不够小,则再划分为k个子问题),然后递归的求解这些子问题,最后用适当的方法将各子问题的解合并成原问题的解。,原问题(规模为n),分治法的适用条件,分治法所能解决的问题一般具有以下几个特征:该问题的规模缩小到一定的程度就可以容易地解决该问题可以分解为若干个规模较小的相同问题该问题所分解出的各个子问题是相互独立的利用分解出的子问题的解可以合并为该问题的解,分治法的基本思想,前提条件:有一组数已经按从小到大(或从大到小)排序目标:输入一个数x,在这组数查找是否有x,二分搜索的步骤:1、确定三个关键下标的初值:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分治 算法 二分 搜索
链接地址:https://www.31ppt.com/p-4959818.html