算法与复杂性-第1讲概述.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1.1.1 什么是算法 ? 算法 ( algorithm ) 一个算法是对特定问题求解步骤的一种描述,它 是指令的有限序列。此外,算法具有下列 5 个特征 : 问题 算法 输入 “计算设备” 输出 输入 ( input ):算法有零个或多个输入量; 输出 ( output ):算法至少产生一个输出量; 确定性 ( definiteness ):算法的每一条指令都 有确切的定义,没有二义性; 能行性 ( effectiveness ):算法的每一条指令必 须足够基本,它们可以通过已经实现的基本运算 执行有限次来实现; 有穷性 ( finiteness ):算法必须总能在执行有 限步之后终止。 ? 欧几里德算法 ( 辗转相除法 ) 计算两个整数 m 和 n 记为 gcd(m, n) 。 0≤m < n) 的最大公约数, ( 【程序 1-1 】 欧几里德递归算法 void Swap ( int a , int b ) { int c=a ; a=b ; b=c ; } int RGcd(int m,int n) { if(m==0) return n; return RGcd(n%m,m); } int Gcd(int m,int n) { if (mn) Swap(m,n); return RGcd(m,n); } 【程序 1-2 】 欧几里德迭代算法 int Gcd(int m,int n) { if (m==0)return n; if (n==0)return m; if (mn) Swap(m,n); while(m0){ int c=n%m;n=m;m=c; } return n; } 【程序 1-3 】 Gcd 的连续整数检测算法 int Gcd(int m,int n) { if (m==0)return n; if (n==0)return m; int t=mn?n:m; while (m%t || n%t) t--; return t; } ? ? ? ? ? 中学的解题思路: ( 1 )找到 m 的所有质因数 ( 2 )找到 n 的所有质因数 ( 3 )找到( 1 ),( 2 )中的公因数 ( 4 )求公因数的积,该乘积为 m 、 n 的最大公 约数 1.2 问题求解方法 1.2.1 问题和问题求解 问题求解( problem solving )是寻找一种方法来实 现目标。 问题求解过程 ( problem solving process )通过使 用问题领域知识来理解和定义问题,选择和使用适当 的问题求解策略、技术和工具,将一个问题描述转换 成问题解的过程。 计算机求解问题的关键之一是寻找一种 问题求解策略 ( problem solving strategy ),得到求解问题的算 法,从而得到问题的解。 1.2.2 问题求解过程 理解问题 设计方案 实现方案 回顾复查 understand the problem ) design a plan ) carry out the plan ) look back ) ( ( ( ( 1.2.3 系统生命周期 ? 一个计算机程序的开发过程就是使用计算机求解问 题的过程。 软件工程 ( software engineering )将 软件开发和维护过程分成若干阶段,称为 系统生命 周期 ( system life cycle )或 软件生命周期。 软件生命周期 划分为 : ? 分析( analysis ) ? 设计( design ) ? 编码( coding or programming ) ? 测试( testing ) ? 维护( maintenance ) 等 5 个阶段。前 4 个阶段属于开发期,最后一个阶 段处于运行期。 ? 1.3 算法设计与分析 1.3.1 算法问题求解过程 理解问题 精确解或近似解 选择数据结构 算法设计策略 设计算法 证明正确性 分析算法 设计程序 算法分类 一个 精确算法 ( exact algorithm )总能保证求得问题 的解。 一个 启发式算法 ( heuristic algorithm )通过使用某种规则、 简化或智能猜测来减少问题求解 时间。

文档评论(0)

magui + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8140007116000003

1亿VIP精品文档

相关文档