- 1、本文档共67页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
东北大学软件学院;与数据结构的区别:
考虑问题的角度:数据结构关心不同的数据结构在解题中的作用和效率;算法关心不同的设计技术的适用性和效率。
考虑问题的高度:数据结构关心的是解具体问题,算法不仅于此,它提供一种解决问题的通用方法。;About Algorithm;课程内容;计算机算法设计与分析(第3版).
王晓东.
电子工业出版社.
2007年5月;References;第1章 算法概述;本章教学要求
理解算法与程序的概念,二者区别与联系
掌握算法复杂性的渐近性态的数学表述
掌握描述算法的方法
重点
理解算法与程序
算法复杂性的渐近性态的数学表述
算法表示方法
难点
算法复杂性的渐进性态的数学表述;What’s Algorithm?
算法是一系列解决问题的清晰指令,也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。;What is an algorithm?;算法的五个重要特征;Example of computational problem: sorting;一般求d=gcd(m,n)的过程用自然语言可以描述如下:
(1) 找出m的素因子;
(2) 找出n的素因子;
(3) 找出m,n的公共的素因子;
(4) 计算所有公共素因子的乘积,结果即为m,n的最大公约数。
这样的过程能称之为算法吗?;计算gcd(m,n)的连续整数检测算法;欧几里德算法;Some Well-known Computational Problems;程序
程序=数据结构+算法
可以不满足有限性
程序性能(program performance):指运行一个程序所需要的内存大小和时间。
算法的描述
自然语言方式、表格方式等
;Basic Issues Related to Algorithms;Algorithm design strategies;Analysis of Algorithms;算法的复杂性
;
1. 多用户系统中运行时,需指明分配给该程序的内存大小。
2. 想提前知道是否有足够可用的内存来运行该程序。
3. 一个问题可能有若干个内存需求各不相同的解决方案,从中择取。
4. 利用空间复杂性来估算一个程序所能解决的问题的最大规模。;
1.有些计算机需要用户提供程序运行时间的上限,一旦达到这个上限,程序将被强制结束。
2.正在开发的程序可能需要提供一个满意的实时响应。
;一、空间复杂性;;数据空间(data space):用来存储所有常量和所有变量值所需的空间。
;; 环境栈空间(environment stack space)-保存函数调用返回时恢复运行所需要的信息。当一个函数被调用时,下面数据将被保存在环境栈中:
返回地址;
所有局部变量的值、递归函数的传值形式参数的值;
所有引用参数以及常量引用参数的定义。;空间复杂度; 在分析空间复杂性中,实例特征的概念非常重要。所谓实例特征是指决定问题规模的那些因素。
输入和输出的数量或相关数的大小,如对n 个元素进行排序、n×n 矩阵的加法等,都可以n 作为实例特征,而两个m×n 矩阵的加法应该以n 和m 两个数作为实例特征。;令S(P)表示程序P需要的空间,则有
S(P) = c + SP(实例特征);利用引用参数
;;Theoretical analysis of time efficiency;二、时间复杂性 time efficiency;估算运行时间的方法;templateclass T
int Max(T a[ ], int n)
{ // 寻找a [ 0 : n - 1 ]中的最大元素
int pos = 0;
for (int i = 1; i n; i++)
if (a[pos] a[i])
pos = i;
return pos;
}
;templateclass T
void Rank(T a[ ], int n, int r[ ])
{// 计算a[0:n-1]中n个元素的排名
for( int i =0;in; i++)
r[i] = 0;//初始化
//逐对比较所有的元素
for(i = 0; in; i++)
for(int j = 0; ji; j++)
if (a[j] = a[i])
r[i]++;
else
r[j]++;
};templateclass T
void Insert(T a[], int n, const T x)
您可能关注的文档
最近下载
- 中心医院“十五五”发展规划(完整版).docx VIP
- 长沙市工贸企业安全生产管理基础资料 (指导手册).doc VIP
- 贵州省安全生产条例解读课件.ppt VIP
- 公路工程安全管理制度.docx VIP
- ISO 927-2009香辛料和调味品—杂质和外来物含量的测定.doc
- 压缩空气管径及压力损失计算表(管径、压损计算).xls VIP
- 2024年质量员-土建方向-岗位技能(质量员)证考试题库.pdf VIP
- 《无人机航拍技术》课件—06无人机拍摄实例分析.pptx VIP
- YB∕T 《电动汽车驱动电机用冷轧无底层取向电工钢带(片)》.pdf
- 《无人机航拍技术》课件—05无人机飞行的法规.pptx VIP
文档评论(0)