- 1、本文档共72页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第一章 算法及基础知识;教材
《算法设计与分析》王秋芬、吕聪颖等编著
清华大学出版社 2011年8月
参考教材
1.《算法设计与分析》(第二版)王晓东编著
清华大学出版社 2008年1月
2. 《算法设计与分析——c++语言描述》陈慧南编著 电子工业出版社 2006年5月
《算法概论》(注释版). Sanjoy Dasgupta等著,钱枫等注释,机械工业出版社,2009
《算法导论》(第二版 影印版).(美) Corrmen. T. H. 北京:高等教育出版社,2002.5;主要内容;为什么要学习算法?
算法是计算机科学的基石。没有算法,计算机程序将不复存在
学习算法可以提高人们的分析能力。
算法可以看作是解决问题的一类特殊方法——它虽非问题的答案,但它是经过准确定义的,用来获得答案的过程。
无论是否涉及计算机,特定的算法设计技术都能看作是问题求解的有效策略。
算法的魅力:思考
程序=算法+数据结构
算法让我们上一个更高的台阶
;一个皇室数学挑战问题(1202);兔子的繁殖;计算Fibonacci数;运行时间分析;指数级时间都那么糟糕吗?;剖 析;好的算法很重要!;学习算法要点:
理解算法的概念。
理解什么是程序,程序与算法的区别和内在联系。
掌握算法的计算复杂性概念。
掌握用C++/JAVA语言描述算法的方法。
;1.1 算法的基本概念;输入性:有零个或多个外部量作为算法的输入。
输出性:算法产生至少一个量作为输出。
确定性:算法中每条指令清晰,无歧义。
有穷性:算法中每条指令的执行次数有限,执行每条指令的时间也有限。(计算过程,时效)
可行性: 算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。 ;
欧几里德算法
;① 输入m 和n;
② 求m除以n的余数r;
③ 若r等于0,则n为最大公约数,算法结束;
否则执行第④步;
④ 将n的值放在m中,将r的值放在n中;
⑤ 重新执行第②步。;1.1.1 算法的4个标准;1.1.3 算法的描述形式;(2)算法框图法
优点:流程图、盒图,流程直观、简洁、明了,便于理解和交流
缺点:缺少严密性、灵活性
使用方法:描述简单算法
注意事项:注意抽象层次
;N;(3) 伪代码语言描述法
伪代码(Pseudocode):介于自然语言和程序设计语言之间的方法,它采用某一程序设计语言的基本语法,操作指令可以结合自然语言来设计。 (算法语言)
优点:表达能力强,抽象性强,容易理解;
1. r = m % n;
2. 循环直到 r 等于0
2.1 m = n;
2.2 n = r;
2.3 r = m % n;
3. 输出 n ;;(4)高级程序设计语言描述法
优点:能由计算机执行
缺点:抽象性差,对语言要求高
使用方法:算法需要验证
注意事项:将算法写成子函数;#include iostream.h
int CommonFactor(int m, int n)
{
int r=m % n;
while (r!=0)
{
m=n;
n=r;
r=m % n;
}
return n;
}
void main( )
{
coutCommonFactor(63, 54)endl;
};1.2 算法设计的一般过程;算法设计的一般过程 ;著名公式
Algorithm + Data Structure = Programming
好的算法
提高求解问题的效率
节省存储空间
需要解决的问题
问题?一个求解算法:算法设计技术
算法?算法的评价: 算法分析技术
;1.3 算法分析;1.3 算法分析
三种情况下的复杂性(结合顺序查找操作)
最好情况Tmin(N)
1次
最坏情况Tmax(N)
N次
平均情况Tavg(N)
(N+1)/2
;算法复杂性分析; 算法渐近复杂性态
设算法的运行时间为T(n),如果存在T*(n),使得
就称T*(n)为算法的渐进复杂性态或渐进时间复杂性。
;举例:
假设算法A的运行时间表达式为T1(n)
T1(n)=30n4+20n3+40n2+46n+100
假设算法B的运行时间表达式为T2(n)
T2(n)=1000n3+50n2+78n+10
随着n的增大,对算法的执行时间影响最大的是最高次方。
算法A的运行时间可记为:T*1(n)≈
您可能关注的文档
- 房屋建筑学-赵州桥赏析汇总.pptx
- 第五章粘性流体的一维流动汇总.ppt
- 3以人为本—住宅厨房空间设计选读.ppt
- 仿鱼机器人2汇总.ppt
- 5--第五章血压测量1探究.ppt
- 【湘教考苑】2016届高三(人教版)一轮复习物理实验(必修部分11个实验)实验十选读.ppt
- 仿制药质量一致性评价工作培训汇总.ppt
- 访谈演示稿汇总.pptx
- 第五章战略:创造竞争优势汇总.ppt
- 访问学者工作汇报PP汇总.ppt
- 部编版一年级语文下册第四单元《8 夜色》教学课件(2025年春-新编教材).pptx
- 江苏省盐城市五校2024-2025学年高一下学期4月期中联考数学试卷(含答案).pdf
- 2025年高一语文教师工作总结简单版(六).docx
- 第12课《台阶》课件 2024—2025学年统编版语文七年级下册(共39张PPT).pptx
- 部编版一年级语文下册第四单元《语文园地四》教学课件(2025年春-新编教材).pptx
- 部编版一年级语文下册第四单元《9 端午粽》教学课件(2025年春-新编教材).pptx
- 指导技能的关键要素与提升的策略研究与分享.docx
- 湖南省永州四中直升班2025届高三(下)适应性数学试卷(含答案).pdf
- 湖北省荆荆宜襄·四地七校联盟2024-2025学年高一(下)期中联考数学试卷(含答案).pdf
- 2025年04月17日袁荣的初中历史组卷.docx
文档评论(0)