算法与结构课件第一章绪论(华北电力大学科技学院).ppt
《算法与结构课件第一章绪论(华北电力大学科技学院).ppt》由会员分享,可在线阅读,更多相关《算法与结构课件第一章绪论(华北电力大学科技学院).ppt(40页珍藏版)》请在三一办公上搜索。
1、计算机算法设计与分析,North China Electric Power University,Computer Algorithms Design&Analysis,华北电力大学计算机科学与工程系,Dept.of Computer Science&Engineering of North China Electric Power University,本课程解决哪些问题,本课程主要介绍在实践应用中行之有效的解决非数值数据处理问题的若干经典的计算机算法,以帮助学生提高运行计算机解决具体问题的能力!基本内容如下 1、算法简介 2、递归 3、分治法 4、动态规划法 石子合并问题 5、贪心法最少硬
2、币个数问题 6、回溯法数字组合问题,算法学习之乐趣,1、久违的小学生成功解决应用题般的兴奋2、难言之隐、十周根治 我已学习语言很多年,编程仍然不过关的苦恼。去玩玩数据结构和算法吧。3、考学、升级之必经之路 数据结构和算法是各种考试的座上客4、认清问题本质 是否对日新月异的开发工具跟得疲惫,当初对学计算机的兴趣大大降低,设计的软件是否存在一些问题,你难以快速理清它的逻辑,并给出高效的解决方案,玩算法吧!它能使你快速看清楚一些常见问题的本质,并提供你各种解决方案进行选择!也是使你区别于代码工人的方式之一。5、计算机科学之最终武器 算法的优化与处理6、玩网游攻关般的快感 在这里不讨论具体编程语言,只
3、分析问题,设计算法,分析算法!当然,实践是检验真理的客观标准,C+或Java语法你得先了解,我们通过北大在线测评网站提交程序,机器判断你的算法是否正确,耗时如何,耗内存如何?去注册帐号练级吧!,1、理论上可计算 2、现实上可计算,理论上可计算-可计算性理论 提出很多合理的计算模型,(递归函数、图灵机、post系统等等)由这些模型规定哪些问题是可计算的。,现实上可计算-计算复杂性理论这个问题涉及到算法的时间、空间复杂性等,算法主要研究的问题及其课程目的,North China Electric Power University,课程目的:以算法设计为主,介绍算法设计的主要方法和基本思想;并简要介
4、绍算法分析概念不是程序设计课,也不是数学课,第一章 算法简介,算法的基本概念,算法的设计与分析,算法的复杂性,North China Electric Power University,算法描述语言(C+)的说明,算法+数据结构=程序(Niklaus Wirth)(Algorithms+Data Structure=Program),程序设计:为计算机处理问题编写的一组指令。,算法:处理问题的方法和策略。,数据结构:问题的数学模型。,程序设计的实质是数据的表示和数据处理,为此 应提出问题的数学模型和设计相应的算法。数据结构是基础,算法是灵魂,1 算法的基本概念,North China Elec
5、tric Power University,算法:解决问题的方法和策略,指为解决一个或一类问题给出的一个确定的、有限长的操作序列。,算法的特性:,1.有穷性,2.确定性,3.可行性,4.有输入,5.有输出,North China Electric Power University,算法与算法设计,问题求解(Problem Solving),算法分析的基本原则,正确性定义:在给定有效输入后,算法经过有限时间的计算并产生正确的答案,就称算法是正确的。正确性证明的内容:方法的正确性证明算法思路的正确性。证明一系列与算法的工作对象有关的引理、定理以及公式。程序的正确性证明证明所给出的一系列指令确实做了
6、所要求的工作。程序正确性证明的方法:大型程序的正确性证明可以将它分解为小的相互独立的互不相交的模块,分别验证。小模块程序可以使用以下方法验证:数学归纳法、软件形式方法等。,算法分析的基本原则,工作量时间复杂性分析计量工作量的标准:对于给定问题,该算法所执行的基本运算的次数。基本运算的选择:根据问题选择适当的基本运算。,算法分析的基本原则,占用空间空间复杂性分析两种占用:存储程序和输入数据的空间存储中间结果或操作单元所占用空间额外空间影响空间的主要因素:存储程序的空间一般是常数(和输入规模无关)输入数据空间为输入规模O(n)空间复杂性考虑的是额外空间的大小如果额外空间相对于输入规模是常数,称为原
7、地工作的算法。,2 算法的复杂性,算法的复杂性,复杂性:指实现或运行某一算法所需资源的多少。,时间复杂性,空间复杂性,人工复杂性(指编程、调试等所需的人工),算法的复杂性:C=F(N,I)N:问题的规模 I:算法的输入,时间复杂性:T=T(N,I)空间复杂性:S=S(N,I),North China Electric Power University,根据T(N,I)的概念,因为统计时间很复杂,我们一般规定一种元运算,看这种元运算在算法中的运行次数。,显然,我们不能对规模N的每一种合法的输入I都去算一次复杂度,只能在规模为N的某些或某类有代表性的合法输入中统计,来评价其复杂性。一般有最坏情况下
8、的时间复杂性W(N)、平均情况下的时间复杂性A(N),最好情况下的时间复杂性我们一般不讨论,意义不大。算法求解输入规模为N的实例所需要的最坏时间和平均时间分别称为最坏情况下和平均情况下的时间复杂性。平均情况下的时间复杂性一般需要知道算法输入的分布情况,也就是算法输入的概率分布状况。,North China Electric Power University,最好,最坏和平均情形时间复杂度,当长度相同的不同输入有不同的计算时间时,时间复杂度分析分别考虑三种情形:即最好,最坏和平均.当应用对计算时间有严格要求时,应做最坏情形分析-upper bound.最好情形分析给出一个算法的计算时间的下界,用
9、来否定一个算法.,复杂性表示:针对问题选择基本运算基本运算的次数表示为输入规模的函数,称为复杂性函数下面看一个具体实例,North China Electric Power University,搜索问题:输入:数组L,元素数为n,数X输出:j.若X在L中,j是X首次出现的下标 否则 j=0算法:顺序搜索假设X在L中出现的概率为p,X在L中不同位置是等概率分布,则W(n)=nA(n)=p(n+1)/2+(1-p)n,操作计数,Program 1.31 Finding the largest elements,如果包含其他operations,则时间复杂度某常数*t(n)。,实例特征:n,ope
10、ration:comparison t(n)=n-1 且不可少于n-1,例题2.7 Max Element,Polynomial Evaluation,Program 2.3 A function to evaluate a polynomial,实例特征:n,operation:multiplication,t(n)=2n,算法的渐近复杂性:,North China Electric Power University,的定义:如果存在正的常数C和自然数N0,使得当NN0时,有f(N)Cg(N),则称函数f(N)当N充分大时有下界;且g(N)是它的一个下界,记为f(N)=(g(N)。不低于g(
11、N)的阶,North China Electric Power University,的定义:定义f(N)=(g(N),当且仅当f(N)=O(g(N)且f(N)=(g(N)。这时,称f(N)和g(N)同阶。o的定义:如果对于任意给定的0,都存在正整数NN0,使得当NN0时,有f(N)/g(N),则称函数f(N)当N充分大时的阶比g(N)低,记为f(N)=o(g(N)。F(N)的阶低于g(N)的阶例如:4NLog N+7=o(3N2+4NLog N+7)O(1)表示常数函数,2.4渐近分析(续),渐近分析-随n的增加T(n)的增长率,设A1,A2,A6是求解同一问题的6个不同的算法,它们的渐近时
12、间复杂性分别为N,NlogN,N 2,N 3,2N,N!。让这六种算法各在C1和C2两台计算机上运行,并设计算机C2的计算速度是计算机C1的10倍。在可接受的一段时间内,设在C1上算法Ai可能求解的问题的规模为N1i,而在C2上可能求解的问题的规模为N2i,那么,我们就应该有Ti(N2i)=10Ti(N1i),其中Ti(N)是算法Ai渐近的时间复杂性,i=1,2,6。分别解出N2i和N1i的关系,可列成下表:,多项式时间算法和指数时间算法:,算法与渐近时间复杂性的关系,另外,从解决问题的规模来分析,当问题规模变大时,指数时间复杂度所用时间爆炸性增长,比如为2n的时间复杂度函数,当n为10时,可
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 结构 课件 第一章 绪论 华北 电力大学 科技学院
链接地址:https://www.31ppt.com/p-6596855.html