第1章-算法概述.ppt_第1页
第1章-算法概述.ppt_第2页
第1章-算法概述.ppt_第3页
第1章-算法概述.ppt_第4页
第1章-算法概述.ppt_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

算法设计与分析 第3版 王晓东编著清华大学出版社 第1章算法概述 学习要点 理解算法的概念 理解什么是程序 程序与算法的区别和内在联系 掌握算法的计算复杂性概念 掌握算法渐近复杂性的数学表述 Java语言简单介绍 算法 Algorithm 简言之 算法是指解决问题的一系列计算步骤或过程 算法是若干指令 或运算 的有穷序列 满足性质 1 输入 有0个或多个外部量作为算法的输入 2 输出 算法产生至少一个量作为输出 3 确定性 组成算法的每条指令是清晰 无歧义的 4 有限性 算法中每条指令的执行次数是有限的 算法总能在执行若干步后结束 5 能行性 算法中的每条指令必须是基本的 即每条指令能够精确执行 且执行时间是有限的 程序 Program 程序是算法用某种程序设计语言的具体实现 程序可以不满足算法的性质 4 例如操作系统 是一个在无限循环中执行的程序 因而不是一个算法 操作系统的各种任务可看成是单独的问题 每一个问题由操作系统中的一个子程序通过特定的算法来实现 该子程序得到输出结果后便终止 问题求解 ProblemSolving 理解问题 精确解或近似解选择数据结构算法设计策略 设计算法 算法复杂性分析 算法复杂性 算法所需要的计算机资源算法的时间复杂性T n 算法的空间复杂性S n 并行算法 分布式算法等还涉及通信复杂性C n 其中 n是问题的规模 输入大小 算法的时间复杂性 在抽象的计算机模型 如RAM 下 1 最坏情况下的时间复杂性Tmax n max T I size I n 2 最好情况下的时间复杂性Tmin n min T I size I n 3 平均情况下的时间复杂性Tavg n 其中I是问题的规模为n的实例 p I 是实例I出现的概率 算法渐近复杂性 T n asn T n t n T n 0 asn t n 是T n 的渐近性态 为算法的渐近复杂性 在数学上 t n 是T n 的渐近表达式 是T n 略去低阶项留下的主项 它比T n 简单 在RAM下 为体现t n 与T n 的关系 有以下符号 渐近分析的记号 在下面的讨论中 对所有n 0 f n 0 g n 0 1 渐近上界记号O对于f n 如果存在正常数c和n0 N 使得对所有n n0有0 f n cg n 则记f n O g n f n O g n 等价于limf n g n 存在且不等于 2 渐近下界记号 对于f n 如果存在正常数c和n0 N 使得对所有n n0有 0 cg n f n 则记f n g n f n g n 等价于limf n g n 存在且不等于0 3 非紧上界记号o对于f n 如果对于任何正常数c 0 都存在n0 N 使得对所有n n0有 0 f n 0 都存在n0 N 使得对所有n n0有 0 cg n f n 则记f n g n 等价于f n g n asn f n g n g n o f n 5 紧渐近界记号 对于f n 如果存在正常数c1 c2和n0 N 使得对所有n n0有 c1g n f n c2g n 则记f n g n f n g n 等价于f n g n c asn c 0 且为常数 定理1 g n O g n g n 渐近分析记号在等式和不等式中的意义 f n g n 的确切意义是 f n g n 即 g n f n 存在正常数c1 c2和n0使得对所有n n0有 c1g n f n c2g n 一般情况下 等式和不等式中的渐近记号 g n 表示 g n 中的某个函数 例如 2n2 3n 1 2n2 n 表示2n2 3n 1 2n2 f n 其中f n 是 n 中某个函数 等式和不等式中渐近记号O o 和 的意义是类似的 渐近分析记号的若干性质 1 传递性 f n g n g n h n f n h n f n O g n g n O h n f n O h n f n g n g n h n f n h n f n o g n g n o h n f n o h n f n g n g n h n f n h n 2 反身性 f n f n f n O f n f n f n 3 对称性 f n g n g n f n 4 互对称性 f n O g n g n f n f n o g n g n f n 5 算术运算 O f n O g n O max f n g n O f n O g n O f n g n O f n O g n O f n g n O cf n O f n g n O f n O f n O g n O f n 对于任意f1 n O f n 存在正常数c1和自然数n1 使得对所有n n1 有f1 n c1f n 类似地 对于任意g1 n O g n 存在正常数c2和自然数n2 使得对所有n n2 有g1 n c2g n 令c3 max c1 c2 n3 max n1 n2 令h n max f n g n 则对于c 2c3 当n n3 有f1 n g1 n c1f n c2g n c3f n c3g n c3 f n g n c32max f n g n 2c3h n ch n f1 n g1 n O h n 即O f n O g n O max f n g n 规则O f n O g n O max f n g n 的证明 算法渐近复杂性分析中常用函数 1 单调函数单调递增 mf n 2 取整函数 x 不大于x的最大整数 x 不小于x的最小整数 取整函数的若干性质 x 10为整数 有 n a b n ab n a b n ab 对于整数b 1 有 a b a b 1 b a b a b 1 b 3 多项式函数p n a0 a1n a2n2 adnd ad 0 p n nd f n O nk f n 多项式有界 f n O 1 f n c k d p n O nk k d p n nk k d p n o nk k d p n nk 4 指数函数对于正整数m n和实数a 0 a0 1 a1 a a 1 1 a am n amn am n an m aman am n a 1 an为单调递增函数 a 1 nb o an 非紧上界 ex 1 x x 1 1 x ex 1 x x2 ex 1 x x2 asx 0 参考书 M H Alsuwaiyel 编著 吴伟昶 方世昌等译 算法设计技巧与分析 北京 电子工业出版社 2004 5 对数函数logn log2n lgn log10n lnn logen logkn logn k loglogn log logn fora 0 b 0andb 1 c 0 x 1 forx 1 foranya 0 logbn o na 6 阶层函数Stirling sapproximation 参考书 RonaldL Graham DonaldE Knuth OrenPatashnik著 ConcreteMathematics AFoundationforComputerScience 北京 机械工业出版社 2003 算法分析中常见的复杂性函数 小规模数据 中等规模数据 Java语言简介 1 Java程序结构 1 Java程序有两种类型 Application和Applet小程序 前者有一个主方法main 而后者主方法为init Java应用程序在命令行执行时为 Java程序名 2 包 Java程序和类可以包 packages 的形式组织管理 Java自带的包有java awt java io java lang java util等 用户也可构建自己的包 3 import语句 在Java程序用于加载所需的包 例如 importjavax swing JOptionPane publicclassAverage publicstaticvoidmain Stringargs inttotal gradeCounter gradeValue average Stringgrade total 0 gradeCounter 1 while gradeCounter 10 grade JOptionPane showInputDialog Enter gradeCounter integergrade gradeValue Integer parseInt grade total total gradeValue gradeCounter average total 10 JOptionPane showMessageDialog null Classaverageis average Classaverage JOptionPane INFORMATION MESSAGE System exit 0 2 Java数据类型参考教材P4 5 略 3 方法 在Java语言中 执行特定任务的函数或过程统称为方法 methods 例如 Java的Math类中部分方法见教材表1 2 P5 其举例见P6 4 异常 5Java类 等 建议参考书 Java语言计算机科学与程序设计 WalterSavitch著 朱剑平等译 清华大学出版社 JAVA程序设计与问题解决 基础篇 WalterSavitch著 电子书 JAVA程序设计与问题解决 高级篇 WalterSavitch著 电子书 算法分析方法 例 顺序搜索算法 publicintseqSearch Object a intn Objectk for inti 0 i n i if a i k returni return 1 1 Tmax n max T I size I n O n 2 Tmin n min T I size I n O 1 3 在平均情况下 假设 a 搜索成功的概率为p 0 p 1 b 在数组的每个位置i 0 i n 搜索成功的概率相同 均为p n 算法分析的基本法则 非递归算法 1 for while循环循环体内计算时间 循环次数 2 嵌套循环循环体内计算时间 所有循环次数 3 顺序语句各语句计算时间相加 4 if

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论