算法设计与分析《算法设计与分析》1-渐近时间复杂度课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《算法设计与分析《算法设计与分析》1-渐近时间复杂度课件.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法设计与分析 算法 设计 分析 渐近 时间 复杂度 课件
- 资源描述:
-
1、算法设计与分析算法分析基础-渐近时间复杂度信息管理学院李季内容提要2022-11-29算法设计与分析2算法分析基础P与NP问题基础递归分治动态规划贪心回溯分支限界算法设计经典策略 分析手段 渐近分析与关键操作 分析结果的表示 渐近表示法与渐近时间复杂度 练习算法与算法问题2022-11-29算法设计与分析3问题编程实现理解问题数学建模数学建模确认算法正确性证明正确性证明分析算法时间复杂度时间复杂度空间复杂度空间复杂度策略选择确定数据结构确定过程结构设计算法表示算法算法问题求解框架渐近表示符号:大O记号、记号、记号、小o记号渐近表示法(渐近时间复杂度):指出时间函数T的渐近上界或下界2022-1
2、1-29算法设计与分析4渐近时间复杂度算法时间复杂度定义程序步计数关键操作计数T(n)渐近分析渐近时间复杂度如何区分算法运行时间在增如何区分算法运行时间在增长趋势上的差异?长趋势上的差异?渐近表示法度量函数的增长趋势2022-11-29算法设计与分析5分析结果的表示_渐近时间复杂度图示图示定义定义意义意义f(n)=O(g(n)能找到c和n0,使得当nn0时,总有:f(n)cg(n)f(n)在数量级上小于等于g(n)或称g(n)是一个上界f(n)=(g(n)能找到c和n0,使得当nn0时,总有:f(n)cg(n)f(n)在数量级上大于等于g(n)或称g(n)是一个下界f(n)=(g(n)能找到c
3、1,c2和n0,使当nn0时,总有:c1g(n)f(n)c2g(n)f(n)在数量级上等于g(n)或称f,g同阶f(n)=o(g(n)能找到c和n0,使得当nn0时,总有:f(n)cg(n)f(n)在数量级上严格小于g(n)或称f比g低阶f(n)f(n)和和g(n)g(n)是定义在自然数集合上的正函数是定义在自然数集合上的正函数f(n)cg(n)f(n)cg(n)c1g(n)c2g(n)f(n)f(n)cg(n)例:f(n)=10n2+4n+21.有 f(n)=O(n2)因为:当因为:当n5后,后,f(n)10n2+5n 10n2+n2 11n2 2.有 f(n)=O(n3)因为:当因为:当n
4、11后,后,f(n)11n2 n33.有 f(n)=(n2)因为:当因为:当n1后,后,f(n)10n2 由1和2知,f有多个渐近上界,越逼近(紧)的上界对f的刻画越精确 由1和3知,f(n)=(n2),即f和g=n2同阶因为:当因为:当n5后,后,10n2 f(n)11n22022-11-29算法设计与分析6渐近表示法应用 算法设计关键操作计数(最坏情况下)T(n)渐近分析2022-11-29算法设计与分析7渐近表示法应用/素数判定算法1int Is_sushu(int N)int i;int flag=1;if(N=1)return false;if(N=2)return true;for
5、(i=2;i=N;i+)if(N%i=0)flag=0;break;return flag;主要部分/素数判定算法2int Is_sushu(int N)int i;int flag=1;if(N=1)return false;if(N=2)return true;for(i=2;i=sqrt(N);i+)if(N%i=0)flag=0;break;return flag;主要部分最坏时:最坏时:T1=N关键操作执行次数?关键操作执行次数?关键操作执行次数?关键操作执行次数?最坏时:最坏时:T2=sqrt(N)低阶在增长趋势上比易得时,总有显然1221221T,0)(1/)()()(2n,)(
6、,)(TnTnTnTnTnnTnnT算法算法1 1和和2 2的渐近特性有明的渐近特性有明显的差异显的差异 渐近时间复杂度(asymptotic complexity)这种使用记号大O/小o来渐近表示的算法时间 渐近分析中参考函数g(n):度量时间T渐近数量级 常见函数如下:分析结果的表示_渐近时间复杂度函数函数测试数量级测试数量级g(n)=1常数级g(n)=logn对数级g(n)=nlogn线性对数级g(n)=n线性级g(n)=n2平方级g(n)=n3立方级g(n)=2n指数级 为什么说:速度为算法之魂 给定条件:给定机器A、机器B和限定时间 B的运算速度是A的100倍 给定时间内机器的关键操
7、作执行能力(运算量)不变 对同一问题有几种不同级别的算法存在:O(n),O(n2),O(2n)计算量相同时,不同算法能解决的问题规模n如下图所示2022-11-29算法设计与分析9速度为算法之魂T(n)计算量计算量(A)n算法110n10,0001000算法2n210,000100算法32n10,00013计算量计算量(B)n1,000,0001000001,000,00010001,000,00019规模变化规模变化n/n100101.46要更快的算法胜于要更快的计算机 求算法渐近时间复杂度的步骤:综合示例:求直接插入排序算法时间复杂度 设对表R中元素进行升序排列,R中元素个数为n2022-
展开阅读全文