数据结构-算法与算法分析_第1页
数据结构-算法与算法分析_第2页
数据结构-算法与算法分析_第3页
数据结构-算法与算法分析_第4页
数据结构-算法与算法分析_第5页
已阅读5页,还剩23页未读, 继续免费阅读

下载本文档

kok电子竞技权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

kok电子竞技:文档简介

数据结构-算法与算法分析我哥哥要上高中了,虽然我有一点点舍不得,但是更多的是开心和激动。因为再也没有人跟我抢电脑了。以前他经常不让我玩电脑,自己霸占电脑。到了哥哥要走的那一天,我看到他在整理行李,他对我说:“赵奕翔,你在家里要听话,不要惹麻烦。”我听了说:“放心吧!”之后我赶紧打开家门送哥哥走出去,希作文望他不再回来。爸爸妈妈与我一道送他下楼,他走的时候,脸上一副闷闷不乐的样子。我装成一副很伤心又很舍不得的样子,可其实心里已经乐开了花,回家后,我自己一个人关在房间大喊道:“yes,终于自由了。”我一看窗户,发现哥哥一直在和我招手,我也向他招手。最后,我就安心地玩起了哥哥的电脑。数据结构-算法与算法分析数据结构-算法与算法分析我哥哥要上高中了,虽然我有一点点舍不得,但是更多的是开心和激动。因为再也没有人跟我抢电脑了。以前他经常不让我玩电脑,自己霸占电脑。到了哥哥要走的那一天,我看到他在整理行李,他对我说:“赵奕翔,你在家里要听话,不要惹麻烦。”我听了说:“放心吧!”之后我赶紧打开家门送哥哥走出去,希作文望他不再回来。爸爸妈妈与我一道送他下楼,他走的时候,脸上一副闷闷不乐的样子。我装成一副很伤心又很舍不得的样子,可其实心里已经乐开了花,回家后,我自己一个人关在房间大喊道:“yes,终于自由了。”我一看窗户,发现哥哥一直在和我招手,我也向他招手。最后,我就安心地玩起了哥哥的电脑。一、算法二、算法设计的要求三、算法效率的度量四、算法的存储空间需求1.4算法和算法分析数据结构-算法与算法分析全文共28页,当前为第1页。一、算法二、算法设计的要求三、算法效率的度量四、算法的存储空间需求1.4算法和算法分析数据结构-算法与算法分析全文共28页,当前为第2页。1.有穷性

2.确定性3.可行性4.有输入5.有输出一、算法

算法(algorithm):是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。

一个算法还具有以下5个重要特性:

数据结构-算法与算法分析全文共28页,当前为第3页。1.有穷性对于任意一组合法输入值,在执行有穷步骤之后一定能结束,即:算法中的每个步骤都能在有限时间内完成;

2.确定性

对于每种情况下所应执行的操作,在算法中都有确切的规定,使算法的执行者或阅读者都能明确其含义及如何执行。并且在任何条件下,算法都只有一条执行路径;数据结构-算法与算法分析全文共28页,当前为第4页。3.可行性算法中的所有操作都必须足够基本,都可以通过已经实现的基本操作运算有限次实现之;4.有输入作为算法加工对象的量值,通常体现为算法中的一组变量。有些输入量需要在算法执行过程中输入,而有的算法表面上可以没有输入,实际上已被嵌入算法之中;数据结构-算法与算法分析全文共28页,当前为第5页。

5.有输出它是一组与“输入”与确定关系的量值,是算法进行信息加工后得到的结果,这种确定关系即为算法的功能。数据结构-算法与算法分析全文共28页,当前为第6页。数据结构-算法与算法分析全文共28页,当前为第7页。数据结构-算法与算法分析全文共28页,当前为第8页。数据结构-算法与算法分析全文共28页,当前为第9页。2.可读性

算法主要是为了人的阅读与交流,其次才是为计算机执行。因此算法应该易于人的理解;另一方面,晦涩难读的程序易于隐藏较多错误而难以调试;数据结构-算法与算法分析全文共28页,当前为第10页。3.健壮性

当输入的数据非法时,算法应当恰当地作出反映或进行相应处理,而不是产生莫名奇妙的输出结果。并且,处理出错的方法不应是中断程序的执行,而应是返回一个表示错误或错误性质的值,以便在更高的抽象层次上进行处理。数据结构-算法与算法分析全文共28页,当前为第11页。4.高效率与低存储量需求

通常,效率指的是算法执行时间;存储量指的是算法执行过程中所需的最大存储空间。两者都与问题的规模有关。数据结构-算法与算法分析全文共28页,当前为第12页。三、算法效率的度量通常有两种衡量算法效率的方法:

事后统计法事前分析估算法缺点:1。必须执行程序

2。其它因素掩盖算法本质数据结构-算法与算法分析全文共28页,当前为第13页。和算法执行时间相关的因素:1.算法选用的策略2.问题的规模3.编写程序的语言4.编译程序产生的机器代码的质量5.计算机执行指令的速度数据结构-算法与算法分析全文共28页,当前为第14页。

一个特定算法的“运行工作量”的大。灰览涤谖侍獾墓婺#ㄍǔS谜縩表示),或者说,它是问题规模的函数。数据结构-算法与算法分析全文共28页,当前为第15页。

一个算法是由控制结构(顺序、分支和循环三种)和原操作(指固有数据类型的操作)构成的,则算法时间取决于两者的综合效果。为了便于比较同一问题的不同算法,通常的做法是,从算法中选取一种对于所研究的问题(或算法类型)来说是基本操作的原操作,以该基本操作重复执行的次数作为算法的时间量度。数据结构-算法与算法分析全文共28页,当前为第16页。

假如,随着问题规模n的增长,算法执行时间的增长率和f(n)的增长率相同,则可记作:T(n)=O(f(n))称T(n)为算法的(渐近)时间复杂度数据结构-算法与算法分析全文共28页,当前为第17页。如何估算算法的时间复杂度?数据结构-算法与算法分析全文共28页,当前为第18页。算法=控制结构+原操作(固有数据类型的操作)算法的执行时间

=原操作(i)的执行次数×原操作(i)的执行时间

算法的执行时间

原操作执行次数之和

成正比

数据结构-算法与算法分析全文共28页,当前为第19页。

从算法中选取一种对于所研究的问题来说是基本操作

的原操作,以该基本操作在算法中重复执行的次数作为算法运行时间的衡量准则。语句频度是指的是该语句重复执行的次数。数据结构-算法与算法分析全文共28页,当前为第20页。例一两个矩阵相乘voidmult(inta[],intb[],int&c[]){

//以二维数组存储矩阵元素,c为a和b的乘积

for(i=1;i<=n;++i)

for(j=1;j<=n;++j){c[i,j]=0;

for(k=1;k<=n;++k)c[i,j]+=a[i,k]*b[k,j];

}//for}//mult基本操作:

乘法操作时间复杂度:

O(n3)数据结构-算法与算法分析全文共28页,当前为第21页。

由于算法的时间复杂度考虑的只是对于问题规模n的增长率,在难以精确计算基本操作执行次数(语句频度)的情况下,只需要求出它关于n的增长率或阶即可。通常算法中基本操作重复执行的次数随问题的输入数据集不同而不同,对这类算法的分析,其一是计算算法的平均时间复杂度,其二是计算最坏情况下的时间复杂度。数据结构-算法与算法分析全文共28页,当前为第22页。

常用的时间复杂度有如下的关系:O(1)<=O(log2n)<=O(n)<=O(nlog2n)<=O(n2)<=O(2n)数据结构-算法与算法分析全文共28页,当前为第23页。四、算法的存储空间需求算法的空间复杂度定义为:

表示随着问题规模n的增大,算法运行所需存储量的增长率与g(n)的增长率相同。S(n)=O(g(n))数据结构-算法与算法分析全文共28页,当前为第24页。算法的存储量包括:1.输入数据所占空间2.程序本身所占空间;3.辅助变量所占空间。数据结构-算法与算法分析全文共28页,当前为第25页。

若输入数据所占空间只取决与问题本身,和算法无关,则只需要分析除输入和程序之外的辅助变量所占额外空间。

若所需额外空间相对于输入数据量来说是常数,则称此算法为原地工作。

若所需存储量依赖于特定的输入,则通常按最坏情况考虑。数据结构-算法与算法分析全文共28页,当前为第26页。1.

熟悉各名词、术语的含义,掌握基本概念。2.

理解算法五个要素的确切含义。本章学习要点3.

了解估算算法时间复杂度的方法。数据结构-算法与算法分析全文共28页,当前为第27页。数据结构-算法与算法分析全文共28页,当前为第28页。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论