第一章2算法设计基本方法优秀PPT.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第一章2算法设计基本方法优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第一章2算法设计基本方法优秀PPT.ppt(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、算法设计基本方法(算法设计基本方法(2)l归纳法:l通过分析少量特殊状况,找出关系,得到结论l例:搏彩问题这期彩票该买几呢?第一期3十一2二5十二1三 6十三1四8十四0五9十五2六8十六2七7十七3八5十八4九5十九4十3二十4依据曲线,买5比较好归纳法归纳法特点:适用面广,高效运用,常能解决很多实际问题适用范围:样本空间有确定规律,多用于预料领域,数据难以获得的工程计算科学计算等领域缺点:归纳出的数学模型须要证明,且代码实现不规范改进方法:常接受不同归纳方法共同求解一个问题软肋:不能求解样本空间过于零散的问题算法设计基本方法(算法设计基本方法(3)l递推l从已知的初始条件动身,逐次推出所要
2、求的各中间结果和最终结果l特点:接受递推关系式数学模型,理论正确性得到保证,由于递推关系式来源于归纳,所以本质上属于归纳法l适用范围:数值计算等工程应用l缺点:需考虑数值计算中稳定性问题,易产生蝴蝶效应l软肋:无递推关系式的问题不行解NYBJ递推递推据说,美军据说,美军 1910 年的一次部队的吩咐传递是这样的年的一次部队的吩咐传递是这样的:营长对值班军官营长对值班军官:明晚大约明晚大约 8点钟左右,哈雷彗星将可能在这个地区看到,这种彗星每隔点钟左右,哈雷彗星将可能在这个地区看到,这种彗星每隔 76年才年才能望见一次。吩咐全部士兵着野战服在操场上集合,我将向他们说明这一罕见的现象。假如能望见一
3、次。吩咐全部士兵着野战服在操场上集合,我将向他们说明这一罕见的现象。假如下雨的话,就在礼堂集合,我为他们放一部有关彗星的影片。下雨的话,就在礼堂集合,我为他们放一部有关彗星的影片。值班军官对连长值班军官对连长:依据营长的吩咐,明晚依据营长的吩咐,明晚8点哈雷彗星将在操场上空出现。假如下雨的话,就让士点哈雷彗星将在操场上空出现。假如下雨的话,就让士兵穿着野战服列队前往礼堂,这一罕见的现象将在那里出现。兵穿着野战服列队前往礼堂,这一罕见的现象将在那里出现。连长对排长连长对排长:依据营长的吩咐,明晚依据营长的吩咐,明晚8点,非凡的哈雷彗星将身穿野战服在礼堂中出现。假如操场点,非凡的哈雷彗星将身穿野战
4、服在礼堂中出现。假如操场上下雨,营长将下达另一个吩咐,这种吩咐每隔上下雨,营长将下达另一个吩咐,这种吩咐每隔76年才会出现一次。年才会出现一次。排长对班长排长对班长:明晚明晚8点,营长将带着哈雷彗星在礼堂中出现,这是每隔点,营长将带着哈雷彗星在礼堂中出现,这是每隔 76年才有的事。假如下雨年才有的事。假如下雨的话,营长将吩咐彗星穿上野战服到操场上去。的话,营长将吩咐彗星穿上野战服到操场上去。班长对士兵班长对士兵:在明晚在明晚8点下雨的时候,著名的点下雨的时候,著名的76岁哈雷将军将在营长的陪伴下身着野战服,开着他岁哈雷将军将在营长的陪伴下身着野战服,开着他那那“彗星彗星”牌汽车,经过操场前往礼
5、堂。牌汽车,经过操场前往礼堂。例:例:计算计算 公式一:公式一:记为记为则初始误差则初始误差?!What happened?!留意此公式精留意此公式精确成立确成立考察第考察第n步的误差步的误差我们有责任改变。我们有责任改变。造成这种情况的是造成这种情况的是不稳定的算法不稳定的算法 /*unstable algorithm*/迅速积累,误差呈递增走势迅速积累,误差呈递增走势可见初始的小扰动可见初始的小扰动 公式二:公式二:留意此公式与公式一留意此公式与公式一在理论上等价。在理论上等价。方法:先估计一个方法:先估计一个IN,再反推要求的再反推要求的In(n N)。可取可取取取 We just go
6、t lucky?考察反推一步的误差:考察反推一步的误差:以此类推,对以此类推,对 n 0)for(i=1;i 0)return n*factorial(n 1);else return 1;例:斐波那契(Fibonacci)序列:F0=F1=1 Fi=Fi-1+Fi-2(i1)算法 求斐波那契数 int F(n)/返回第n个斐波那契数/int n;if(nb/if(b=0)return(a);else return(GCD(b,a%b);例:GCD(22,8)=GCD(8,6)=GCD(6,2)=GCD(2,0)=2;递归递归特点:结构清晰,可读性强,简洁用数学归纳法证明算法正确性适用范围:难
7、以用循环或递推直观描述的困难问题缺点:资源耗费多,执行效率低,所以在算法优化时接受消递归策略算法设计基本方法(算法设计基本方法(5)l减半递推技术(分治法)l所谓“减半”,是指将问题的规模减半,而问题的性质不变。所谓“递推”,是指重复“减半”的过程。例:二分法求方程实根的减半递推过程(算法及程序见书p13)首先取给定区间的中点c(ab)/2。然后推断f(c)是否为0。若f(c)0,则说明c即为所求的根,求解过程结束;假如f(c)0,则依据以下原则将原区间减半:若f(a)f(c)0,则取原区间的前半部分;若f(b)f(c)0,则取原区间的后半部分。最终推断减半后的区间长度是否已经很小:若|ab|
8、,则过程结束,取(ab)/2为根的近似值;若|ab|,则重复上述的减半过程。例例 二分检索二分检索 二分检索:每次选取二分检索:每次选取中间元素中间元素的下标的下标算法 二分检索Int BINSRCH(int A,int n,int x)int low,high,mid;low=1;high=n;while(low=high)mid=if(xAmid)low=mid+1;else return mid;return 0;注:给定一个按非降次序排列的元素数组A(1:n),n1,推断x是否出现。若是,返回当前角标mid若非,返回0,表示没有找到例:设A(1:9)=(-15,-6,0,7,9,23,
9、54,82,101)在A中检索x=101,-14,82。执行轨迹见下表1表1 运行轨迹示例x=101x=-14x=82lowhighmidlowhighmidlowhighmid19519519569714269789811189899921找不到找到找到成功的检索不成功的检索成功的检索递推减半技术递推减半技术特点:快速缩小计算规模适用范围:工程计算,矩阵计算,数值计算中能够快速将问题分治的状况算法设计基本方法(算法设计基本方法(6)l回溯法l通过对问题的分析,找出一个解决问题的线索,然后沿着这个线索逐步摸索,对于每一步的摸索,若摸索成功,就得到问题的解,若摸索失败,就逐步回退,换别的路途再进
10、行摸索。l例:八皇后问题(教材p15)迷宫问题l事实上是一种图的深度优先遍历的方法l特点:算法效率高,直观清晰l适用范围:适用于解决“是否存在”或者“有多少种可能”问题l缺点:算法的困难性与计算依次有关算法分析1.分析算法的目的 在于:通过对算法的分析,在把算法变成程序实际运行前,就知道为完成一项任务所设计的算法的好坏,从而运行好的算法,改进差的算法,避开无益的人力和物力奢侈。算法分析是计算机领域的“古老”而“前沿”的课题。算法分析算法分析l“好”的算法应当达到以下指标l正确性(Correctness):算法应当满足具体问题的需求l可读性(Readability):算法是连接数学模型和程序的桥
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第一章 算法 设计 基本 方法 优秀 PPT
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内