- 2
- 0
- 约4.15千字
- 约 25页
- 2022-05-26 发布于湖南
- 举报
算法设计与分析 杨圣洪 346260267 K 离散数学-交互-论坛 以你们的学号登录课程中心也可以 * 关于本课程 课程目的:计算机算法设计与分析导引 以算法设计为主,介绍算法设计的主要方法和基本思想;并简要介绍算法分析概念 不是程序设计课,也不是数学课 授课形式:上课+小班+作业/实验+期末考试 教材:王晓东 计算机算法设计与分析 参考资料: Web资源 , , … 图书资源 , … * 第1章 算法概述 本章知识要点: 1.1 算法与程序 1.2 算法与数据结构 1.3 表达算法的抽象机制 1.4 描述算法与算法设计 1.5 算法分析的基本原则 1.6 算法复杂性分析 C++程序语言描述算法 计划授课时间:2课时 * 1.1 算法与程序 算法:是满足下述性质的指令序列。 输入:有零个或多个外部量作为算法的输入。 输出:算法产生至少一个量作为输出。 确定性:组成算法的每条指令清晰、无歧义。 有限性:算法中每条指令的执行次数有限,执行每条指令的时间也有限。 程序: 程序是算法用某种程序设计语言的具体实现。 程序可以不满足算法的性质(4)即有限性。 例如操作系统,在无限循环中执行程序,因而不是一个算法。这句话值得商榷,我认为只是每个程序是“枕戈待旦”,但它的每次出去都满足“有限性”。 * 1.2 算法与数据结构 描述算法可以有多种方式 自然语言方式、表格方式、图示形式等 本书将采用C++与自然语言相结合的方式 算法与数据结构的关系 不了解算法就无法决定数据结构。 好的结构可以提高算法的效率,更易实现。 算法+数据结构=程序 * 1.3 描述算法与算法设计 本课程采用C++语言来描述算法。 C++语言的优点是类型丰富、语句精炼,具有面向对象和面向过程的双重优点。 用C++来描述算法可使算法结构紧凑、可读性强。 在课程中,不做任何要求。 算法设计方法主要有:分治策略、动态规划、贪心算法、回溯法、分支限界、概率算法等,我们将在后面的章节中陆续介绍。 * 1.5 算法分析的角度 正确性 定义:在给定有效输入后,算法经过有限时间的计算并产生正确的答案,就称算法是正确的。 正确性证明的内容: 方法的正确性证明——算法思路的正确性。证明一系列与算法的工作对象有关的引理、定理以及公式。 程序的正确性证明——证明所给出的一系列指令确实做了所要求的工作。 程序正确性证明的方法: 大型程序的正确性证明——可以将它分解为小的相互独立的互不相交的模块,分别验证。 小模块程序可以使用以下方法验证:数学归纳法、软件形式方法等。 * 1.5 算法分析的角度 工作量——时间复杂性分析 计量工作量的标准: 对于给定问题,该算法所执行的基本运算的次数。 基本运算的选择:根据问题选择适当的基本运算。 问题 基本运算 在表中查找x 比较 实矩阵相乘 实数乘法 排序 比较 遍历二叉树 置指针 * 1.5 算法分析的角度 占用空间——空间复杂性分析 两种占用: 存储程序和输入数据的空间 存储中间结果或操作单元所占用空间——额外空间 影响空间的主要因素: 存储程序的空间一般是常数(和输入规模无关) 输入数据空间为输入规模O(n) 空间复杂性考虑的是额外空间的大小 如果额外空间相对于输入规模是常数,称为原地工作的算法。 * 1.5 算法分析的角度 简单性 含义:算法简单,程序结构简单。 好处: 容易验证正确性 便于程序调试 简单的算法效率不一定高。保证一定效率的前提下力求得到简单的算法。 3n+1问题 While(n1) if (odd(n)) n=3n+1; else n=n/2; 在最坏情况下,该算法的计算时间下界为Ω(logn). 但其计算时间上界至今未知。即该算法是否在有限时间内结束? 日本学者米田信夫验证了1013内的自然数。 这就是Collatz猜想。 * 1.6 算法复杂性分析 复杂性公式C=F(N,I,A):N(输入的规模)、I(具体某个输入)和A(算法)。 如算法A采用逐数比对从某10个数中找出1,则N为10,I可为1,2,3,4,5,6,7,8,9,10或3,4,5,6,7,8,9,2,3,1。前者速度最快,后者最多。 时间复杂度 T=T(N,I) 空间复杂度S=S(N,I) 。 由于仅考虑同一个算法,故A不写 。 从最坏输入来分析复杂度,故T(N),S(N), 二者类似,只考T(n) * 1.6 算法复杂性分析 T(N,I)的计算公式: 所涉基本指令为O1,O2,…,Ok, 指令执行时间为t1,t2,…,tk, 各指令出现频率为e1,e2, …, ek,该值与规模N相关。 * 1.6 算法复杂性分析 渐进表达式:当N?∞时,T(N) ?∞。 若存在T(N),当N→∞时(T(N)-T(
您可能关注的文档
- 2020版《中国2型糖尿病防治指南》 九大更新要点.ppt
- Python编程基础-第1章-Python语言概述.ppt
- 乘积季节模型.ppt
- 第七章 金属切削加工基础知识.ppt
- 泛海智慧社区_问卷调查子系统培训.ppt
- 恐惧-回避理论模型.ppt
- 数据采集与预处理-第6章-数据仓库中的数据集成.ppt
- 线性规划数学模型.ppt
- 医疗行业工作汇报.ppt
- 医院行政职能部门满意度测评体系的实施及效果.ppt
- 2026当代公益面试题及答案.doc
- 2025-2026学年北师大版高三英语第二学期期中检测试卷(附答案解析).docx
- 小学语文识字教学中汉字空间认知与建筑空间感知的关联课题报告教学研究课题报告.docx
- 《艺术教育课程设计对青少年创造力培养的实践探索与效果评价》教学研究课题报告.docx
- 消防工程师《消防设施》2025年高频考点卷.docx
- 2026年全球智能家居安全市场分析.docx
- 2026精读课文面试题及答案.doc
- 2024年全国二级造价工程师之安装工程建设工程计量与计价实务考试黑金试题(附答案).pdf
- 初中英语教学中任务型教学与跨文化交际能力的培养研究课题报告教学研究课题报告.docx
- 区域人工智能教育协同发展中的教育信息化与教育技术装备升级研究教学研究课题报告.docx
原创力文档

文档评论(0)