计算机在执行递归算法时效率低 为什么,数学与计算机学院23非递归算法的效率分析很常用.PPT...

这篇复习提纲涵盖了算法效率分析,重点在非递归算法和递归算法。非递归算法中,通过实例分析了从数组中查找最大值的算法效率,强调了确定输入规模、基本操作和增长函数的重要性。递归部分讲解了递归调用的理解、递归算法设计和转换。此外,提纲还涉及了矩阵乘法的时间效率分析。复习建议关注算法理解而非死记硬背。
摘要由CSDN通过智能技术生成

数学与计算机学院23非递归算法的效率分析很常用

2009-2010-2算法设计与分析复习提纲 考试时间及地点 18周周5(2010-7-2)10:00-11:50 地点:6B-107?,隔位就座 请各位同学在答题卷左上角写上自己考试序号 例如:序号为9号的同学记为? 注意:学号应写全例如:200407020101 考试名单 考试名单 考试题型(A,B卷) 题型:全部大题 考试形式:闭卷,隔位就座,听从监考老师安排 分值分布: 第1章算法效率分析:20分 第2章:递归 20分 第3章蛮力法:10分 第4章分治法:10分 第5章减治法:10分 第6章变治法:10分 第8,9章动态规划法,贪婪法10分 第11章算法能力极限:10分 复习 注意:请重点依据PPT内容进行复习。 算法不能靠背,靠的是理解然后触类旁通。 复习 第一章: 算法的定义、算法与数据结构的区别 算法的特点 算法的几种详细描述方法:自然语言、结构化文字、流程图、伪代码 算法的最优、最差、平均效率 上界符号 O 、下届符号Ω、同阶符号Θ 渐进效率的基本类型 递归算法效率分析(解递归方程):前向替换法、反向替换法、公式法 算法效率分析框架 输入规模的度量: 运行时间的度量:用基本操作执行次数来作为时间效率的度量 增长次数(增长率):基本操作数(时间耗费)是输入规模 n 的函数,记为T(n) , T(n) 随着 n 次数的增加而增加。函数值T(n) 增加快慢,决定于这个增长函数特性; 算法的最优、最差、平均效率 2.3非递归算法的效率分析(很常用) 本节将系统地运用前节的通用框架来分析非递归算法的效率。先从一个 简单的算法开始,示范这类算法分析的步骤。 例1:从 n 个元素列表中查找最大值。(用数组简单实现列表) 算法 MaxElement ( A[0...n-1] ) // 求数组A中元素的最大值 // 输入:实数数组A。 输出:A中最大元素的值 maxval←A[0] for i←1 to n-1 do if A[i] > maxval // 每次循环时无条件执行(必执行) maxval←A[i] // 每次循环时有条件执行(不一定执行) return maxval 效率分析框架要求明确输入规模和基本操作。 输入规模:数组元素的个数 n 。 基本操作:根据基本操作概念,它应该是算法中最费时的操作。因此, 应该选择 for 循环内的比较操作。 非递归算法分析2 接下来,效率分析框架要求我们找到基本操作与输入规模的函数关系, 即增长函数 T(n) 或者 C(n)。这里,C(n) 是比较运算的次数。不难看出, 本算法每循环一次,基本操作就要执行一次。因此有: 非递归算法效率分析的通用方案: 1 确定输入规模; 2 确定基本操作;(一般情况:它总是位于算法的最内层循环里) 3 考虑基本操作的执行次数是否仅仅与输入规模有关。若还与其他因数 有关(比如顺序查找算法中基本操作执行次数还与查找键在列表中的 位置有关),则按需要对效率种类(最差、最佳、平均效率)作出分析。 4 建立基本操作执行次数与输入规模 n 的求和表达式,即增长函数。 5 利用运算公式(法则),确定该增长函数的增长率。 例2:【 矩阵乘法 】时间效率分析 给定两个方阵 A 和 B,根据矩阵乘法定义计算它们之乘积。 算法:MatrixMultiplication (A[0...n-1][0...n-1], B[0...n-1][0...n-1]) for i←0 to n-1 do // 行循环 for j←0 to n-1 do // 列循环 M[ i ][ j ]←0.0 // 初始化 for k←0 to n-1 do // 用变量 k 表示变化的脚标 M[ i ][ j ]←M[ i ][ j ] + A[ i ][ k ] * B[ k ][ j ] return M 第 2 章 递 归 概述 递归程序的阅读理解 递归算法的设计实例 递归转非递归 本章习题 第二章 递 归例 N阶汉汉诺塔问题 递归调用树 递归算法 方程求解 复杂性分析 递归转化为非递归 斐波拉契问题 给出某一个递归算法 第三章 蛮力法 选择排序 能根据算法对任意给定的数组进行排序 写出伪代码,并分析算法效率 冒泡排序 能根据算法对任意给定的数组进行排序 写出伪

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值