- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第1章绪论与算法效率分析
非递归算法分析2 建立基本操作与输入规模 n 的函数关系 —— 增长函数 T(n) = ? 分析:每循环一次,基本操作执行一次。循环次数为 n – 1 次 非递归算法效率分析的步骤: 1 确定输入规模 2 确定基本操作(一般在最内层循环里) 3 分析:基本操作执行次数与输入数据的分布情况有关吗? —— 有关:分别进行最差、最佳、平均效率分析 4 建立增长函数:基本操作执行次数与输入规模 n 的关系 5 化简增长函数,确定增长函数的类型 T(n) 的类型:线性 复习:几个常用求和公式 常用求和公式(更多:教材附录) 例2:元素唯一性问题 【例2】检查数组元素是否唯一 算法 UniqueElement ( A[0...n-1] ) for i←0 to n-2 do for j←i+1 to n-1 do if A[ i ] = A[ j ] return false return true 输入规模:元素个数 n 基本操作:最内层循环的 比较 操作(无其他操作) 效率类别:有无最优、最差、平均效率? 观察循环结束条件:若有相等元素,提前结束循环 —— 元素不唯一 最佳效率:开始两个元素相等。 Cbest(n) = 1 最差效率:没有相同元素或最后两个元素相等。这时,完成全部循环 比较次数 = 循环次数。下面分析 最差效率 Cworst(n) 平均效率:其他情况(略) i j 例2:元素唯一性问题(续) 外层 i 循环范围:0 →n – 2 内层 j 循环范围:i + 1 → n - 1 建立增长函数 —— 基本操作次数与输入规模 n 的函数关系 例3:【矩阵乘法】时间效率分析 【例3】矩阵乘法的时间效率分析 给定两个方阵 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 如果是非方阵,只需改变行列循环变量的范围即可。本例均为 n-1 例3:【矩阵乘法】时间效率分析(续) 输入规模:方阵的阶 n 。非方阵:参与运算的元素个数。 基本操作:最内层循环有三种操作:乘法、加法、赋值。每次循环时, 每种操作均被执行一次,所以任选一种作为基本操作均可,因它们的 执行次数相同。考虑操作的时间耗费:大多数计算机的乘法比加法更 费时,算术运算比赋值操作更费时。所以,本例选乘法为基本操作。 效率类别:本例基本操作数只与输入规模有关,与输入元素分布无关, 不用分析最佳、最差和平均效率。 建立增长函数C(n) : 例4:十进制正整数的二进制位数 【例4】计算十进制正整数 n 的二进制位数 b 算法的时间复杂性分析 算法 Binary(n) count ← 1 while n 1 do count ++ n ← return count 输入规模:n 基本操作:除法 效率类别:基本操作数只与 n 有关,不用分析最佳、最差和平均效率 增长函数:不是循环次数的简单求和式 —— 循环次数不能简单确定 基本操作数 = 循环次数: 有对数换底公式: 所以 C(n) 类型不写对数的底 → logn 向上取整: 每次规模减小一半 —— 减常因子算法(第五章),本例常因子 = 2 递归算法效率分析 递归算法效率分析 序列与递推关系 例:整数序列 2, 4, 6, 8, 10, 12, ... (正偶数序列) 0, 1, 1, 2, 3, 5, 8, ... (裴波拉契数序列) 函数表示法: x(n) —— 序列表示为函数形式 自变量 n : 元素在序列中的位置(序号),n = 0, 1, 2, … 函数值 x(n) :元素的值。如正偶数序列第2个元素 x(1) = 4 = x1
您可能关注的文档
- 王二小第一课时教案.doc
- 远程非学历第5答案.doc
- 二次函数专题二.doc
- 瓦斯抽放钻孔管理试行办法.doc
- 2010年泸州市中考文综试题.doc
- 10万元婚庆奢华套餐.doc
- 2008试题4.doc
- 小一语下册期末试卷(五).doc.doc
- A4-1表施工测量放线报验申请表.doc
- 第06章PLSQL语言程序设计.ppt
- 浙江省温州市浙南名校联盟2025-2026学年高一上学期期中联考数学试题含解析.docx
- 26高考数学提分秘诀重难点34圆锥曲线中的定点、定值、定直线问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点35概率与统计的综合问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点31圆锥曲线中的切线与切点弦问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点30圆锥曲线中的弦长问题与长度和、差、商、积问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点29巧解圆锥曲线的离心率问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点28直线与圆的综合(举一反三专项训练)(全国通用)(含解析).docx
- 寡核苷酸药物重复给药毒性研究技术指南.docx
- 重组溶瘤腺病毒生产质量管理标准.docx
- 26高考数学提分秘诀重难点27直线与圆中常考的最值与范围问题(举一反三专项训练)(全国通用)(含解析).docx
原创力文档


文档评论(0)