当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

重庆移通学院:《数据结构》课程教学资源(PPT课件讲稿)第2章 算法分析

资源类别:文库,文档格式:PPT,文档页数:23,文件大小:177KB,团购合买
一、算法分析的概念 二、算法效率的度量 三、检验一个算法分析 四、Big-Oh分析法的限制
点击下载完整版文档(PPT)

第2章算法分析 算法分析的概念 @算法效率的度量 @检验一个算法分析 @Bg-Oh分析法的限制

第2章 算法分析 算法分析的概念 算法效率的度量 检验一个算法分析 Big-Oh分析法的限制

评价算法好坏的标准 ◆执行算法所耗费的时间,即效率问题。 ◆执行算法所耗费的存储空间,主要考虑辅助的存储空 间 ◆算法应易于理解具有可读性,易于编码,易于调试等。 ◆健壮性,即当输入一些非法数据时,算法也应做出适 当的反映或进行处理

评价算法好坏的标准 执行算法所耗费的时间,即效率问题。 执行算法所耗费的存储空间,主要考虑辅助的存储空 间。 算法应易于理解,具有可读性,易于编码,易于调试等。 健壮性,即当输入一些非法数据时,算法也应做出适 当的反映或进行处理

算法分析的概念 ◆算法所花费的运行时间取决于它所处理的数 据输入量。 ◆算法的运行时间是数据输入量的一个函数。 ◆而确切的函数值依赖于许多因素。 ◆对于一个给定计算机上的给定程序,可以在 图中描绘出运行时间的函数

算法分析的概念 算法所花费的运行时间取决于它所处理的数 据输入量。 算法的运行时间是数据输入量的一个函数。 而确切的函数值依赖于许多因素。 对于一个给定计算机上的给定程序,可以在 图中描绘出运行时间的函数

算法分析中的时间函数图解 ◆图中给出了四个程序的运行时间图,这些曲线代表了在算法 分析中遇到的四个函数:线性函数、O( NlogN)、二次方 函数、立方函数,输入规模N从1至100,运行时间为0至10 亳秒。 线性 线性 0.8 O NIogND O(NIOgN 平方 0.6 平方 互万 4 0.4 0.2 1020304o50607o8o90100 12345678910 输入规模(M) 输入规模(N)(单位为千) 图2-1小规模输入时的运行时间 图2-2中规模输入时的运行时间

图中给出了四个程序的运行时间图,这些曲线代表了在算法 分析中遇到的四个函数:线性函数、O(NlogN)、二次方 函数、立方函数,输入规模N从1至100,运行时间为0至10 毫秒。 算法分析中的时间函数图解 图2-1 小规模输入时的运行时间 图2-2 中规模输入时的运行时间

◆这些曲线最显著的特征就是当数据输入量较大时,平方 算法和立方算法无法与其他算法竞争。 ◆下表所示的是以增长率的增长次序来排列这些算法运行 时间的函数。 函数 名称 函数 名称 常数 NIOgN NlOgN 0g 对数 N 平方 0g 平方对数 N 立方 N 线性 n 指数

这些曲线最显著的特征就是当数据输入量较大时,平方 算法和立方算法无法与其他算法竞争。 下表所示的是以增长率的增长次序来排列这些算法运行 时间的函数。 函数 名称 函数 名称 c 常数 NlogN NlogN logN 对数 N² 平方 log ²N 平方对数 N³ 立方 N 线性 2ⁿ 指数

算法效率的度量 算法效率——用依据该算法编制的程序在计算机上执行 所消耗的时间来度量。 通常有两种衡量算法效率的方法: 1、事后统计——利用计算机内记时功能,不同算法的程序 可以用一组或多组相同的统计数据区分。 缺点:①必须先运行依据算法编制的程序。 ②所得时间统计量依赖于硬件、软件等环境因素,掩盖 算法本身的优劣

算法效率的度量 算法效率——用依据该算法编制的程序在计算机上执行 所消耗的时间来度量。 通常有两种衡量算法效率的方法: 1、事后统计——利用计算机内记时功能,不同算法的程序 可以用一组或多组相同的统计数据区分。 缺点:必须先运行依据算法编制的程序。 所得时间统计量依赖于硬件、软件等环境因素,掩盖 算法本身的优劣

算法效率的度量 2、事前分析估计——个高级语言程序在计算机上运行所 消耗的时间取决于: ①依据的算法选用何种策略 ②问题的规模 ③程序语言 ④编译程序产生机器代码质量 ⑤机器执行指令速度

算法效率的度量 2、事前分析估计——一个高级语言程序在计算机上运行所 消耗的时间取决于: 依据的算法选用何种策略 问题的规模 程序语言 编译程序产生机器代码质量 机器执行指令速度

算法效率的度量 同一个算法用不同的语言、不同的编译程序、在 不同的计算机上运行,效率均不同,—所以使用 绝对时间单位衡量算法效率不合适 一个特定算法的“运行工作量”的大小,只依赖 于问题的规模(通常用整数量η表示),或者说, 它是问题规模的函数

算法效率的度量 同一个算法用不同的语言、不同的编译程序、在 不同的计算机上运行,效率均不同,——所以使用 绝对时间单位衡量算法效率不合适。 一个特定算法的“运行工作量”的大小,只依赖 于问题的规模(通常用整数量n表示),或者说, 它是问题规模的函数

计算累加和程序 程序步数计算工作表格 次执行所执行程序 程序语句 需程序步数频度步数 0 float s =0.0: for( int i=0; i<n; i++)1 n+1n+1 s+= a[; return s, 0 10 总程序步数2n+3

计算累加和程序 程序步数计算工作表格 程 序 语 句 一次执行所 需程序步数 执行 频度 程序 步数 { 0 1 0 float s = 0.0; 1 1 1 for ( int i=0; i<n; i++ ) 1 n+1 n+1 s += a[i]; 1 n n return s; 1 1 1 } 0 1 0 总程序步数 2n+3

算法效率的度量 一般情况下,算法中基本操作重复执行的次数是问题 规模n的某个函数,算法的时间量度记作 T(n=o(f(n) 称作算法的渐近时间复杂度,简称时间复杂度。 表示随着问题规模η的增长,算法执行时间的增长率 和f(n)的增长率相同

算法效率的度量 一般情况下,算法中基本操作重复执行的次数是问题 规模n的某个函数,算法的时间量度记作 T(n)=O(f(n)) 称作算法的渐近时间复杂度,简称时间复杂度。 表示随着问题规模 n 的增长,算法执行时间的增长率 和 f(n) 的增长率相同

点击下载完整版文档(PPT)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共23页,试读已结束,阅读完整版请下载
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有