算法设计与分析优秀PPT.ppt
《算法设计与分析优秀PPT.ppt》由会员分享,可在线阅读,更多相关《算法设计与分析优秀PPT.ppt(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、算法设计与分析算法设计与分析教材:计算机算法设计与分析教材:计算机算法设计与分析王晓东王晓东编著编著电子工业出版社电子工业出版社学时:学时:36学时学时主讲老师:马宁主讲老师:马宁计算机科学的方法论在本课程中有显明的体现:计算机科学的方法论在本课程中有显明的体现:抽象、理论和设计抽象、理论和设计3个过程,也称作个过程,也称作新的思想新的思想方法方法算法设计与分析中用到的计算机科学中普遍的算法设计与分析中用到的计算机科学中普遍的概念:概念:大问题的困难性大问题的困难性效率效率抽象的层次抽象的层次重用重用折中折中提高程序设计的水平:提高程序设计的水平:从楼上走到楼下共有从楼上走到楼下共有h 个台阶
2、,每一步有个台阶,每一步有3种走种走法:走法:走1个台阶;走个台阶;走2个台阶;走个台阶;走3个台阶。问个台阶。问可走多少种方案?可走多少种方案?要求:用递归函数来编程;要求:用递归函数来编程;输入台阶个数的语句为输入台阶个数的语句为scanf(“d”,&h);输出可走方案的种类。输出可走方案的种类。提高程序设计的水平:提高程序设计的水平:从楼上走到落下共有从楼上走到落下共有h 个台阶,每一步有个台阶,每一步有3种走种走法:走法:走1个台阶;走个台阶;走2个台阶;走个台阶;走3个台阶。问个台阶。问可走多少种方案?可走多少种方案?要求:用递归函数来编程;要求:用递归函数来编程;输入台阶个数的语句
3、为输入台阶个数的语句为scanf(“d”,&h);输出可走方案的种类。输出可走方案的种类。程序代码程序代码第第1章章算法概述算法概述学习要点学习要点学习要点学习要点:理解算法的概念。理解算法的概念。理解算法的概念。理解算法的概念。理解什么是程序,程序与算法的区分和内在联系。理解什么是程序,程序与算法的区分和内在联系。理解什么是程序,程序与算法的区分和内在联系。理解什么是程序,程序与算法的区分和内在联系。驾驭算法的计算困难性概念。驾驭算法的计算困难性概念。驾驭算法的计算困难性概念。驾驭算法的计算困难性概念。驾驭算法渐近困难性的数学表述。驾驭算法渐近困难性的数学表述。驾驭算法渐近困难性的数学表述。
4、驾驭算法渐近困难性的数学表述。算法算法(Algorithm)算法是指解决问题的一种方法或一个过程。算法是指解决问题的一种方法或一个过程。算法是指解决问题的一种方法或一个过程。算法是指解决问题的一种方法或一个过程。算法是若干指令的有穷序列,满足性质:算法是若干指令的有穷序列,满足性质:算法是若干指令的有穷序列,满足性质:算法是若干指令的有穷序列,满足性质:(1)(1)输入:有外部供应的量作为算法的输入。输入:有外部供应的量作为算法的输入。输入:有外部供应的量作为算法的输入。输入:有外部供应的量作为算法的输入。(2)(2)输出:算法产生至少一个量作为输出。输出:算法产生至少一个量作为输出。输出:算
5、法产生至少一个量作为输出。输出:算法产生至少一个量作为输出。(3)(3)确定性:组成算法的每条指令是清晰,无歧义的。确定性:组成算法的每条指令是清晰,无歧义的。确定性:组成算法的每条指令是清晰,无歧义的。确定性:组成算法的每条指令是清晰,无歧义的。(4)(4)有限性:算法中每条指令的执行次数是有限的,有限性:算法中每条指令的执行次数是有限的,有限性:算法中每条指令的执行次数是有限的,有限性:算法中每条指令的执行次数是有限的,执行每条指令的时间也是有限的。执行每条指令的时间也是有限的。执行每条指令的时间也是有限的。执行每条指令的时间也是有限的。程序程序(Program)程序是算法用某种程序设计语
6、言的具体实现。程序是算法用某种程序设计语言的具体实现。程序是算法用某种程序设计语言的具体实现。程序是算法用某种程序设计语言的具体实现。程序可以不满足算法的性质程序可以不满足算法的性质程序可以不满足算法的性质程序可以不满足算法的性质(4)(4)。例如操作系统,是一个在无限循环中执行的程序,例如操作系统,是一个在无限循环中执行的程序,例如操作系统,是一个在无限循环中执行的程序,例如操作系统,是一个在无限循环中执行的程序,因而不是一个算法。因而不是一个算法。因而不是一个算法。因而不是一个算法。操作系统的各种任务可看成是单独的问题,每一个操作系统的各种任务可看成是单独的问题,每一个操作系统的各种任务可
7、看成是单独的问题,每一个操作系统的各种任务可看成是单独的问题,每一个问题由操作系统中的一个子程序通过特定的算法来问题由操作系统中的一个子程序通过特定的算法来问题由操作系统中的一个子程序通过特定的算法来问题由操作系统中的一个子程序通过特定的算法来实现。该子程序得到输出结果后便终止。实现。该子程序得到输出结果后便终止。实现。该子程序得到输出结果后便终止。实现。该子程序得到输出结果后便终止。问题求解问题求解(ProblemSolving)证明正确性证明正确性分析算法分析算法设计程序设计程序理解问题理解问题精确解或近似解精确解或近似解选择数据结构选择数据结构算法设计策略算法设计策略设计算法设计算法算法
8、困难性分析算法困难性分析算法困难性算法困难性=算法所须要的计算机资源算法所须要的计算机资源用公式表达为:用公式表达为:C=F(n,I,A)或或C=F(n,I)算法的时间困难性算法的时间困难性T(n,I);算法的空间困难性算法的空间困难性S(n,I)。其中其中n是问题的规模(输入大小)是问题的规模(输入大小),I是输入。是输入。算法的时间困难性算法的时间困难性(1 1)最坏状况下的时间困难性)最坏状况下的时间困难性)最坏状况下的时间困难性)最坏状况下的时间困难性Tmax(n)=maxT(I)|size(I)=nTmax(n)=maxT(I)|size(I)=n(2 2)最好状况下的时间困难性)最
9、好状况下的时间困难性)最好状况下的时间困难性)最好状况下的时间困难性Tmin(n)=minT(I)|size(I)=nTmin(n)=minT(I)|size(I)=n(3 3)平均状况下的时间困难性)平均状况下的时间困难性)平均状况下的时间困难性)平均状况下的时间困难性Tavg(n)=Tavg(n)=其中,其中,其中,其中,size(I)size(I)是问题的规模,是问题的规模,是问题的规模,是问题的规模,p(I)p(I)是实是实是实是实 例例例例I I出现的概率出现的概率出现的概率出现的概率算法渐近困难性算法渐近困难性T(n)T(n),as n,as n;/;/前提条件前提条件前提条件前提
10、条件(T(n)-t(n)/T(n)(T(n)-t(n)/T(n)0 0,as nas n;/;/定义定义定义定义t(n)t(n)是是是是T(n)T(n)的渐近性态,为算法的渐近困难性。的渐近性态,为算法的渐近困难性。的渐近性态,为算法的渐近困难性。的渐近性态,为算法的渐近困难性。在数学上,在数学上,在数学上,在数学上,t(n)t(n)是是是是T(n)T(n)的渐近表达式,是的渐近表达式,是的渐近表达式,是的渐近表达式,是T(n)T(n)略去略去略去略去低阶项留下的主项。它比低阶项留下的主项。它比低阶项留下的主项。它比低阶项留下的主项。它比T(n)T(n)简洁。简洁。简洁。简洁。渐近分析的记号渐
11、近分析的记号在下面的探讨中,对全部在下面的探讨中,对全部在下面的探讨中,对全部在下面的探讨中,对全部n n,f(n)f(n)00,g(n)g(n)00。(1 1)渐近上界记号)渐近上界记号)渐近上界记号)渐近上界记号OOO(g(n)=f(n)|O(g(n)=f(n)|存在正常数存在正常数存在正常数存在正常数c c和和和和n0n0使得对全部使得对全部使得对全部使得对全部n n n0n0有:有:有:有:00f(n)f(n)cg(n)cg(n)。记为:。记为:。记为:。记为:f(n)f(n)O(g(n)O(g(n)(2 2)渐近下界记号)渐近下界记号)渐近下界记号)渐近下界记号 (g(n)=f(n)
12、|(g(n)=f(n)|存在正常数存在正常数存在正常数存在正常数c c和和和和n0n0使得对全部使得对全部使得对全部使得对全部n n n0n0有:有:有:有:0 0cg(n)cg(n)f(n)f(n)。记为:。记为:。记为:。记为:f(n)f(n)(g(n)(g(n)(3 3)紧渐近界记号)紧渐近界记号)紧渐近界记号)紧渐近界记号(g(n)=f(n)|(g(n)=f(n)|存在正常数存在正常数存在正常数存在正常数c1,c2c1,c2和和和和n0n0使得使得使得使得对全部对全部对全部对全部n nn0n0有:有:有:有:c1g(n)c1g(n)f(n)f(n)c2g(n)c2g(n)。记为:记为:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 设计 分析 优秀 PPT
限制150内