




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1Fibonacci数列数列: 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 ; i1 F(n)=递归的终止条件递归的终止条件递归公式递归公式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 递归法求Fibonacc
2、i数列3用递归法求用递归法求Fibonacci数列数列Fib(4)return + Fib(3)Fib(2)return + Fib(2)Fib(1)return + Fib(1)Fib(0)return + Fib(1)Fib(0)return 1return 1return 1return 1return 1n=4时,递归法进展了多时,递归法进展了多少次函数调用?少次函数调用?112111325n=20时时, 要进展要进展21891次递归调用次递归调用讨论讨论: 求求Fibonacci数列的数列的迭代法和递归法谁好?迭代法和递归法谁好?2-1 递归法求Fibonacci数列4第2讲 分治法
3、和二分搜索算法 本讲内容:本讲内容: (1) (1) 分治法的根本思想分治法的根本思想 (2) (2) 二分搜索技术二分搜索技术 5分治法的根本思想分治法的思想分治法的思想: : 分而治之。将一个规模为分而治之。将一个规模为n n的问题分解为的问题分解为k k个个规模较小的子问题,这些子问题相互独立且与原问题一样,规模较小的子问题,这些子问题相互独立且与原问题一样,( (假设子问题的规模依然不够小,那么再划分为假设子问题的规模依然不够小,那么再划分为k k个子问题个子问题), ), 然后递归的求解这些子问题,最后用适当的方法将各子问题的然后递归的求解这些子问题,最后用适当的方法将各子问题的解合
4、并成原问题的解。解合并成原问题的解。原问题原问题(规模为规模为n)子问题子问题1子问题子问题2子问题子问题k子问题子问题1子问题子问题2子问题子问题k一样一样类型类型合并解合并解子问题子问题1子问题子问题2子问题子问题k子问题子问题1子问题子问题2子问题子问题k6分治法的适用条件分治法的适用条件分治法所能处理的问题普通具有以下几个特征:分治法所能处理的问题普通具有以下几个特征:该问题的规模减少到一定的程度就可以容易地处该问题的规模减少到一定的程度就可以容易地处理理该问题可以分解为假设干个规模较小的一样问题该问题可以分解为假设干个规模较小的一样问题该问题所分解出的各个子问题是相互独立的该问题所分
5、解出的各个子问题是相互独立的利用分解出的子问题的解可以合并为该问题的解利用分解出的子问题的解可以合并为该问题的解分治法的根本思想7前提条件:有一组数曾经按从小到大前提条件:有一组数曾经按从小到大(或从大到小或从大到小)排序排序目的:输入一个数目的:输入一个数x,在这组数查找能否有,在这组数查找能否有x二分搜索的步骤:二分搜索的步骤:1、确定三个关键下标的初值:、确定三个关键下标的初值:bott=0, top=8, mid=(bott+top)/2;2、判别要找的数、判别要找的数x能否等于能否等于amid x=amid 找到,终了找到,终了xamid 在在amid+1atop之间继续查找之间继续
6、查找x bott=mid+1; mid=(bott+top)/2;-15-6079235482101midbotttopa0 a1 a2 a3 a4 a5 a6 a7 a82-2 二分搜索算法8二分搜索实例二分搜索实例:设在数组设在数组a中顺序放了以下中顺序放了以下9个元素:个元素:检索检索x=9, 9=a4, 一次比较就胜利一次比较就胜利, 最好情况最好情况-15-6079235482101a0 a1 a2 a3 a4 a5 a6 a7 a8检索检索x=-15, -15a4, -15a4, 101a6, 101a7, 101=a8, 4次比较次比较, 胜利胜利检索检索x=8, 8a1, 8a
7、2, 8a3, 4次比较次比较, 不胜利不胜利2-2 二分搜索算法9#include#define N 10int find(int a , int x, int bott, int top);void main( ) int i, x, aN, result; printf(n 输入数组输入数组 a:n); for(i=0; iN; i+) scanf(%d, &ai); printf(“输入要查找的数输入要查找的数 x:); scanf(%d, &x); result=find(a, x, 0, N-1); if (result= -1) printf(%d is not found.n,
8、 x); else printf(Find %d=a%dn, x, result);迭代法的程序代码迭代法的程序代码/ 符号常量定义,便于修正数组的大小符号常量定义,便于修正数组的大小/ 函数调用函数调用/ 函数声明函数声明2-2 二分搜索算法10int find(int a , int x, int bott, int top) int mid; while(bott=top) mid=(bott+top)/2; if(x=amid) return(mid); else if(xamid,2. 搜索不胜利,搜索不胜利,-1midbott = mid + 1,前往,前往 find(a,x,bott,top)前往前往find(a,x,mid+1,top)2. 假设假设x top,前往,前往12int find(int a , int x, int bott, int top) int mid; if(bott=top) mid=(bott+top)/2; if(x=amid) else if(xamid) else 递归法的程序代码递归法的程序代码x大那么查找数组中较大的一大那么查找数组中较大的一半半x小那
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公路ppp合同范本
- 分红比例合同范本
- 公路规划合同范本
- 协议合同范本写法
- 兼职还款合同范本
- pos机推广合同范本
- 入股店铺协议合同范本
- 义齿加工合同范本模板
- 京东入职合同范本
- 医院整体转让合同范本
- 2024年保育员(初级)考试题及答案
- 新型智慧水利项目数字孪生工程解决方案
- 甘肃省白银市2024年中考英语真题
- 2024年全国职业院校技能大赛(智能制造设备技术应用赛项)考试题库(含答案)
- 赵家沟金矿改扩建项目建设工程可行性建议书
- 胰腺囊性肿瘤
- 联盟山东省菏泽一中2025届高考全国统考预测密卷历史试卷含解析
- 《财务会计基础》课件-认知原始凭证
- 新学期开学第一课主题班会
- 2023八年级道德与法治下册 第七课 尊重自由平等第1框 自由平等的真谛教案 新人教版
- 春天古诗包含内容模板
评论
0/150
提交评论