




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 算法的五个重要的特征:确定性、能行性、输入、输出、有穷性/有限性。2、 表示算法的语言主要有:自然语言、流程图、盒图、PAD图、伪代码、计算机程序设计语言3、 算法分析有两个阶段:事前分析和时候测试。4、 衡量算法有几个方面:时间和空间。5、 渐进意义下的符号的意义: 记:算法的计算时间为f(n), 数量级限界函数为g(n),其中, n是输入或输出规模的某种测度。 f(n)表示算法的“实际”执行时间与机器及语言有关。 g(n)是形式简单的函数,如nm,logn,2n,n!等。是事前分析中通过对计算时间或频率计数统计分析所得的与机器及语言无关的函数。 以下给出算法执行时间:上界()、下界()、“平均”( )的定义。定义1.1 如果存在两个正常数c和N0,对于所有的NN0,有|f(N)|C|g(N)|,则记作:f(N)= O(g(N)。1)当说一个算法具有O(g(n)的计算时间时,指的就是如果此算法用n值不变的同一类数据在某台机器上运行时,所用的时间总是小于g(n)的一个常数倍。2)g(n)是计算时间f(n)的一个上界函数,f(n)的数量级就是g(n)。Eg : 因为对所有的N1有3N4N,所以有3N=O(N);因为当N1时有N+10241025N,所以有N+1024=O(N);因为当N10时有2N2+11N-103N2,所以有 2N2+11N-10=O(N2)因为对所有N1有N2N3,我们有N2=O(N3)作为一个反例N3O(N2),因为若不然,则存在正的常数C和自然数N0,使得当NN0,有N3CN2,即NC。显然,当取N=maxN0,C+1时这个不等式不成立,所以N3O(N2)多项式定理:定理1.1 若A(n) = amnm+a1n+a0是一个m次多项式,则有A(n)=(nm) 即:变量n的固定阶数为m的任一多项式,与此多项式的最高阶nm同阶。 证明:取n0=1,当nn0时,有 |A(n)|am|nm+|a1|n+|a0| (|am|+|am-1|/n+|a0|/nm) nm (|am|+|am-1|+|a0|) nm 令c= |am|+|am-1|+|a0| 定理得证。符号O运算性质:(f,g为定义在正数集上的正函数)(1)O(f)+O(g)=O(max(f,g)(2)O(f)+O(g)=O(f+g)(3)O(f)O(g)=O(fg)(4)如果g(N)=O(f(N),则O(f)+O(g)=O(f)(5)O(Cf(N)=O(f(N),其中C是一正常数。(6)f=O(f)定理1.2 如果f(n) =am nm+.+a1n+a0 且am 0,则f(n)=(nm )。该定义的优点是与O的定义对称,缺点是f(N)对自然数的不同无穷子集有不同的表达式,且有不同的阶时,不能很好地刻画出f(N)的下界。比如当 100 N为正偶数 f(N)= 6N2 N为正奇数按照定义,得到f(N)=(1),这是个平凡的下界,对算法分析没有什么价值。“平均情况”限界函数定义1.3 如果存在正常数c1,c2和n0,对于所有的nn0,有c1|g(N)| |f(N)| c2|g(N)| 则记作 f(N)= (g,(N)含义:算法在最好和最坏情况下的计算时间就一个常数因子范围内而言是相同的。可看作:既有f(N)=(g(N),又有f(N)=(g(N)【例1.8】循环次数直接依赖规模n变量计数之一。 (1) x=0;y=0; (2) for(k=1;k=n;k+) (3) x+; (4) for(i=1;i=n;i+) (5) for(j=1;j=n;j+) (6) y+; 该算法段的时间复杂度为T(n)=(n2)。 当有若干个循环语句时,算法的时间复杂度是由嵌套层数最多的循环语句中最内层语句的频度f(n)决定的。【例1.9】循环次数间接依赖规模n-变量计数之二。 (1) x=1;(2) for(i=1;i=n;i+) (3) for(j=1;j=i;j+) (4) for(k=1;k=0 and Aik ) (3) i=i-1; (4) return i;此算法的频度不仅与问题规模n有关,还与输入实例中A的各元素取值及k的取值有关: 1. 若A中没有与k相等的元素,则(2)频度f(n)=n(最坏情况); 2. 若A最后一个元素等于k ,则(2)频度f(n)是常数1(最好情况);在求平均情况时,一般地假设查找不同元素的概率P是相同的,则算法的平均复杂度为: 若对于查找不同元素的概率P不相同时,其算法复杂度就只能做近似分析,或在构造更好的算法或存储结构后,做较准确的分析。例1.11】求N! 递归方程为: T(n)=T(n-1)+O(1) 其中O(1)为一次乘法操作。迭代求解过程如下: T(n)=T(n-2)+O(1)+O(1) =T(n-3)+O(1)+O(1)+O(1) =O(1)+O(1)+O(1)+O(1) =n*O(1) =O(n)【例1.12】抽象地考虑以下递归方程,且假设n=2k,则迭代求解过程如下: T(n) =O(n)【例1.13】一个楼有n个台阶,有一个人上楼有时一次跨一个台阶,有时一次跨两个台阶,编写一个算法,计算此人有几种不同的上楼方法,并分析算法的时间复杂度。解:设计一个递归算法。 H(int n) if (n2 T(n) 2T(n-1) 2 T(n-2) 2 T(1) =O(2 )【例1.14】抽象地考虑以下递归方程,且假设n=2k,则迭 代求解过程如下: T(n)=2T(n/2)+O(n) =2T(n/4)+2O(n/2)+O(n) = =O(n)+O(n)+ +O(n)+O(n)+O(n) =kO(n) =O(kn) =O(nlog2 n)【例1.15】抽象地考虑以下递归方程,迭代求解过程如下: T(n)=T(n/3)+T(2n/3)+n =T(n/9)+T(2n/9)+n/3+T(2n/9)+T(4n/9)+2n/3 = n=(k+1)n=n(log n+1)设最长路径长度为k,(2/3) n=1k=log n 、加图Chapter21 贪婪算法的思想:贪婪算法通过一系列的局部选择来得到一个问题的解。所作的每一个选择都是当前状态下“最优”的选择。要依照某种策略。策略“只顾眼前,不管将来”,称之为“贪婪策略”。贪婪算法没有固定的算法框架,算法设计的关键是贪婪策略的选择。1 贪婪算法的思想-例4.2 活动安排问题u 规则:选择具有最早结束时间的相容活动加入,使剩余的可安排时间最大,以安排尽可能多的活动。u 由于输入的活动以其完成时间的非减序排列,所以算法GreedySelector每次总是选择具有最早完成时间的相容活动加入集合A中。直观上,按这种方法选择相容活动为未安排活动留下尽可能多的时间。u 也就是说,该算法的贪心选择的意义是使剩余的可安排时间段极大化,以便安排尽可能多的相容活动。 例:设待安排的11个活动的开始时间和结束时间按结束时间的非减序排列如下:贪心算法解决01背包问题:对于0-1背包问题,贪心选择之所以不能得到最优解是因为在这种情况下,它无法保证最终能将背包装满,部分闲置的背包空间使每公斤背包的价值降低了。/事实上,在考虑0-1背包问题时,应比较选择该物品和不选择该物品所导致的最终方案,然后再作出最好选择。由此就导出许多互相重叠的子问题。 这正是该问题可用动态规划算法求解的重要特征。动态规划动态规划的基本思想:动态规划方法的基本思想是,把求解的问题分成许多阶段或多个子问题,然后按顺序求解各子问题。最后一个子问题就是初始问题的解。由于动态规划的问题有重叠子问题的特点,为了减少重复计算,对每一个子问题只解一次,将其不同阶段的不同状态保存在一个二维数组中。动态规划=贪婪策略+递推(降阶)+存储递推结果最大字段和的问题 :算法(递归形式)int Num=100charaNum,bNum,strNum; main( ) int m,n,k; print(“Entertwostring”); in
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年心理健康心理健康评估与干预知识检测试卷答案及解析
- 2025年皮肤病学科临床表现鉴定竞赛答案及解析
- 2025年传染科肠道传染病病原检出技术选择与应用试卷答案及解析
- 2025年家庭医学家庭医生服务技能评测答案及解析
- 2025年整体医学中医药与西医结合病例评估测试答案及解析
- 民族团结教育课件
- 2025年齿科口腔种植术后护理知识温习考试卷答案及解析
- 新质生产力的核心支撑要素解析
- 2025年消化内科患者的腹泻护理模拟测试卷答案及解析
- 2025年眼科学科视网膜剥离手术技能检测答案及解析
- 北师大版七年级数学上册《生活中的立体图形》第2课时示范公开课教学课件
- 耳尖放血课件完整版
- 手术病人病情观察能力培养业务学习专家讲座
- GB/T 14715-2017信息技术设备用不间断电源通用规范
- 起重设备安装安全事故应急预案
- 教研组、备课组新学期教研组长会议课件讲义
- 物流网络规划与设计课件
- JB∕T 5245.4-2017 台式钻床 第4部分:技术条件
- 鞘膜积液的护理查房
- 《水工监测工》习题集最新测试题含答案
- 部编版三年级上册道德与法治第一单元第1课《学习伴我成长》课件
评论
0/150
提交评论