CTchar03.pptVIP

  1. 1、本文档共60页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CTchar03

多媒体技术与应用 第三章 算法基础 《计算机导论》 第三章 图形与图像处理 3.1 算法的概念 1974年图灵奖获得者Donald Ervin Knuth: 计算机科学就是算法的研究 The Art of Computer Programming 3.1 算法的概念 一、算法的起源 3.1 算法的概念 二、算法的定义 3.1 算法的概念 三、算法的特征 3.2 算法的描述 算法的描述目的 记录算法思想 方便他人理解算法 3.2 算法的描述 一、自然语言 3.2 算法的描述 二、流程图 3.2 算法的描述 [例题]利用流程图描述欧几里得算法。 3.2 算法的描述 三、伪代码 3.2 算法的描述 [例题]利用伪代码描述欧几里得算法。 3.2 算法的描述 四、程序设计语言 3.2 算法的描述 输入:正整数m、n 输出:m、n的最大公约数 int gcd(int m, int n) { int r; do { r = m % n; m = n; n = r; } while(r); return m; } 3.3 算法的设计 算法是解决问题的方案,由于实际问题千奇百怪,因而制定出的解决方案也将千差万别。 3.3 算法的设计 ③设计算法 设计算法是将算法具体化,即设计出算法的详细规格说明。也就是,首先确定算法所需要的数据结构,然后结合具体问题的特性来选择算法的设计策略,最后根据算法设计技术的原理描述算法的具体流程(流程图、伪代码和程序设计语言等)。 ④分析算法 对所设计出的算法进行复杂性分析,考察其在时间和空间方面的计算开销。若算法在某些环节的计算开销较大,可有针对性地改进该环节,若整个算法的计算开销太大,则需要返回第③步重新考虑采用新的算法设计技术来求解该问题。 ⑤编程实现 采用某种程序设计语言将设计好的算法实现出来。 3.3 算法的设计 算法分类: 3.3 算法的设计 一、穷举法(又称蛮力算法) 穷举法指在问题的解空间范围内逐一测试,找出问题的解。它是一种简单而有效的算法设计策略同时也是一种很容易应用的方法。 3.3 算法的设计 [案例一]暴力破解法是一种用穷举法实现的密码破译方法。 3.3 算法的设计 [案例二]四色定理(又称四色问题或四色猜想)。 3.3 算法的设计 [案例三]百钱买百鸡问题 3.3 算法的设计 设鸡翁、鸡母、鸡雏的个数分别为x、y、z,根据题意可得如下方程组:    5x+3y+z/3=100 x+y+z=100 1≤x<20, 1≤y<33, 3≤z<100, z mod 3=0 3.3 算法的设计 巧妙和高效的算法很少来自于穷举法,但基于以下因素,穷举法仍是一种重要的算法设计策略: ①穷举法几乎可以通用于任何领域的问题求解,可能是唯一一种解决所有问题的一般性方法; ②即使效率低下,仍可用穷举法求解一些小规模的问题实例; ③如果解决的问题实例不多,而穷举法可用一种可接受的速度对问题求解,那么花时间去设计一个更高效地算法是得不偿失的。 3.3 算法的设计 二、回溯法 回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。在搜索过程中,能进则进,不能进则退回来,换一条路再试,通过此种方式提高搜索效率,减少不必要的测试。 3.3 算法的设计 [案例一]老鼠走迷宫 3.3 算法的设计 [案例二]搜索引擎中的网络爬虫。 3.3 算法的设计 网络爬虫:自动下载互联网所有网页。 网络爬虫原理:图的遍历,从图中某一顶点出发访遍图中所有顶点,且使每个顶点仅被访问一次。 回溯算法:图的深度优先遍历(广度优先遍历)。 3.3 算法的设计 [案例三]八皇后问题。在8×8格国际象棋的棋盘上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上问有多少种摆法? 3.3 算法的设计 回溯法解八皇后问题思路:逐行摆放皇后。初始第1行皇后放第1列;摆放第i行皇后时,从第1列开始,逐列判定是否与前i-1行皇后攻击,直到找到一个不攻击的位置,继续第i+1行的摆放;若第i行无摆放位置,则拿掉该行皇后,回溯至第i-1行,第i-1行皇后从当前位置的下一列开始判定,继续搜索。当第1行皇后的摆放位置超出棋盘时,全部求解过程结束。(92种) 3.3 算法的设计 回溯法有通用解法之称,当一个问题没有显而易见的解法时,可尝试使用回溯法求解,这实际是与穷举法一致的,因其本质仍是穷举。需要注意,回溯和穷举虽然能解很多问题,但其算法效率可能很低。 3.3 算法的设计 三、递归

文档评论(0)

zw4044 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档