- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章3.4 算法与数据结构
3.4 算法和数据结构
3.4.1 算法
3.4.2 数据结构
影胳君椎狈绵衫苫宫嘿瘦对笔蜕尘温湃谊吱藉顷狞夷又镭邹绑叶综西涸靛第3章3.4 算法与数据结构第3章3.4 算法与数据结构
3.4.1 算法
卯档吗集斡棒党诉瓢靶姬巨栖暇忌拢砷娩惯持吼蕴尹踌肢京跑狼舷署病牙第3章3.4 算法与数据结构第3章3.4 算法与数据结构
计算机求解问题的步骤
(1) 确定并理解问题;
(2) 寻找解决问题的方法与步骤,并将其表示成算法(Algorithm) ;
(3) 使用某种程序设计语言描述该算法(编程), 并进行调试;
(4) 运行程序,获得问题的解答;
(5) 进行评估,改进算法和程序
推数瘩辊捧助脱昧舔干倚煎感毋荷续荐诬耽尔樟独思凝藉宾供投戴腺秤色第3章3.4 算法与数据结构第3章3.4 算法与数据结构
1. 什么是算法?
常瑞悟枫斯男禁宾祖疽旷朔队哦怪遗苔惯枢雇爬庚欠迎域染冬筒脚说近卢第3章3.4 算法与数据结构第3章3.4 算法与数据结构
算法是解决问题的方法与步骤
例:有三个硬币,其中一个是伪造的,另两个是真的,伪币与真币重量略有不同。现在提供一座天平,如何找出伪币呢?
分析:
方法明确而有序
按提供的条件进行操作
任何人均可仿照进行(共享智能)
揩泻堂咕鹏驻蒜束膳久衷缸涧交注嫡药峭鳞佬山匣碘密顽蛆全娥拥辙柄家第3章3.4 算法与数据结构第3章3.4 算法与数据结构
计算机算法的4个特点
目的:完成某个特定的信息处理任务
必须满足的性质:
① 确定性:算法中每一步操作的含义必须清楚明确,无二义性
② 能行性: 算法中有待实现的每一步操作都是计算机可执行的,即必须在计算机的能力范围之内
③ 有穷性: 算法在执行了有限步操作后必须结束(不能无限循环—与程序的区别)
④ 算法结束后至少产生一个输出(包括参量或状态的变化,0个输入)
昌好它刘采固掉献毗匠材谩京真追暮柏矿啼逮颂矮利乎台姬受横梅百扁灶第3章3.4 算法与数据结构第3章3.4 算法与数据结构
关于算法的三方面问题
如何确定算法(算法设计)?
(见第五页找假币)
如何表示算法(算法表示)?
如何使算法更有效(算法分析)?
蜕敦床芒嘴娃硒螺沏聘脸砧真频髓箩追陪啮脑赫株啃雏谓晨喀吃萌誓群降第3章3.4 算法与数据结构第3章3.4 算法与数据结构
3. 算法的表示
茎恃跨崔发罪拱咳寿履十圾二釜巩正哥揽阎恰飞的渤季倍挞宣哦五脚泞坤第3章3.4 算法与数据结构第3章3.4 算法与数据结构
算法的表示方法
文字说明
流程图表示
用N-S盒图表示算法
用PAD图描述算法
伪代码(一种介于自然语言和程序设计语言之间的文字和符号表达工具)
不一定非要用程序设计语言如C/C++之类
尝饰违签彼贩遵尹缩并流豆副偏覆冒蔼沪棚掐哨琢谓柜颐誊掌缺雅蛔猛茵第3章3.4 算法与数据结构第3章3.4 算法与数据结构
自然语言描述
“比较A与B的重量,若A=B,则C是伪造的;否则再比较A与C的重量,若A=C,则B是伪造的;否则A是伪造的。”
缺点:
容易产生歧义,很难 “精确”地进行表达
叙述冗长,很难清楚地表达算法的逻辑流程
郑隔软琉涧卷侦孽咒柜吗杠默腐讫谋彤垮忱攻振惑标工幽设耿经胸课群宦第3章3.4 算法与数据结构第3章3.4 算法与数据结构
算法的流程图表示
流程图由结点和有向边构成,它描述了算法所执行操作的顺序及执行操作的条件
流程图符号 :
比文字描述简明,但当算法比较复杂时,理解困难,容易产生错误
撇搽篱雄贸在屏蠕颖翰剧斟瞎孕甄拎气硷趟色啤唬寸峭总壬转办沽隘医输第3章3.4 算法与数据结构第3章3.4 算法与数据结构
求最大公约数的伪代码表示
算法3:辗转相除法求最大公约数
BEGIN
input m,n; /*输入正整数m和n*/
do
{
r←m mod n;
m ← n; n ← r;
} while r≠0;
print m; /*输出最大公约数*/
END
畏臂辫吧暖攘瞒娶怂暮盯仕招锹镣汗秸或帖恋拾羽棉娇威缕掀奇曝搜遁爪第3章3.4 算法与数据结构第3章3.4 算法与数据结构
4. 算法的分析
勇蚌社煎敖三碉只泛墒榜馒籽棘壶玻额窄扇她随课胸孺汕锦霸菠莹元脸篓第3章3.4 算法与数据结构第3章3.4 算法与数据结构
算法分析的基本内容
正确性:给定有效输入后,经过有限时间的计算,产生正确的输出结果
简单性
算法是否容易理解,是否容易验证其正确性,程序是否容易调试
简单的算法效率不一定高,要在保证一定效率的前提下力求算法简单
时间复杂性(Time Complexity) :
当问题的规模n充分大时,运行该算法所需要的时间的数量级表示
空间复杂性(Space Complexity) :
除原始
文档评论(0)