- 1、本文档共66页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Chapter1_算法分析
一维数组 : 为了在运行时创建一个大小可动态变化的一维浮点数组x,可先将x声明为一个float类型的指针。然后用new为数组动态地分配存储空间。 例: float ?x=new float[n]; 创建一个大小为n的一维浮点数组。运算符new分配n个浮点数所需的空间,并返回指向第一个浮点数的指针。 然后可用x[0],x[1],…,x[n-1]来访问每个数组元素。 运算符delete : 当动态分配的存储空间已不再需要时应及时释放所占用的空间。 用运算符delete来释放由new分配的空间。 例: delete y; delete [ ]x; 分别释放分配给?y的空间和分配给一维数组x的空间。 动态二维数组 : 创建类型为Type的动态工作数组,这个数组有rows行和cols列。 template class Type void Make2DArray(Type** x,int rows, int cols) { x=new Type*[rows]; for (int i=0;irows;i++) x[i]=new Type[cols]; } 当不再需要一个动态分配的二维数组时,可按以下步骤释放它所占用的空间。首先释放在for循环中为每一行所分配的空间。然后释放为行指针分配的空间。 释放空间后将x置为0,以防继续访问已被释放的空间。 template class Type void Delete2DArray(Type** x,int rows) { for (int i=0;irows;i++) delete []x[i]; delete []x; x=0; } * * * * * * * * * * * * * * * * * * 符号O 定义1 对于足够大的n,t(n)的上界由g(n)的常数倍来确定,即: 记为t(n) ∈O(g(n)) t(n) ≤ cg(n),c为常数 n ∈O(n2) 100n+5 ∈O(n2) n(n-1)/2 ∈O(n2) 符号Ω 定义2 对于足够大的n,t(n)的下界由g(n)的常数倍来确定,即: 记为t(n) ∈ Ω(g(n)) t(n) ≥ cg(n),c为常数 n3∈Ω (n2) n(n+1)∈Ω (n2) 4n2+5 ∈Ω (n2) 符号Θ 定义3 对于足够大的n,t(n)的上界和下界由g(n)的常数倍来确定,即: 记为t(n) ∈ Θ(g(n)) c2g(n) ≤ t(n) ≤ c1g(n),c1,c2为常数 n2+3n+2∈Θ (n2) n(n-1)/2∈Θ (n2) 4n2+5 ∈Θ (n2) 渐进符号的有用特性 定理 如果t1(n) ∈O(g1(n))并且t2(n) ∈O(g2(n)),则 t1(n)+ t2(n) ∈O(max{(g1(n), g2(n)}) 对于符号Ω和Θ,该定理也成立。 该定理表明:当算法由两个连续执行部分组成时,该算法的整体效率由具有较大增长次数的那部分所决定。 利用极限比较增长次数 前两种情况意味着t(n) ∈ O(g(n)) 后两种情况意味着t(n) ∈ Ω(g(n)) 第二种情况意味着t(n) ∈ Θ(g(n)) 基本的效率类型 常量(1)、对数(logn)、线性(n)、nlogn、平方(n2)、立方(n3)、指数(2n)、阶乘(n!) 算法分析中常见的复杂性函数 常见的算法时间复杂度由小到大依次为: Ο(1)<Ο(log2n)<Ο(n)<Ο(nlog2n)<Ο(n2)<Ο(n3)<…<Ο(2n)<Ο(n!) Ο(1)表示基本语句的执行次数是一个常数,一般来说,只要算法中不存在循环语句,其时间复杂度就是Ο(1)。Ο(log2n)、Ο(n)、Ο(nlog2n)、Ο(n2)和Ο(n3)称为多项式时间,而Ο(2n)和Ο(n!)称为指数时间。计算机科学家普遍认为前者是有效算法,把这类问题称为P类问题,而把后者称为NP问题。 算法分析的基本法则 非递归算法: (1)for / while 循环 循环体内计算时间*循环次数; (2)嵌套循环 循环体内计算时间*所有循环次数; (3)顺序语句 各语句计算时间相加; (4)if-else语句 if语句计算时间和else语句计算时间的较大者。 分析非递归算法效率的通用方案 决定用那些参数作为输入规模的度量。 找出算法的基本操作。 检查基本操作的执行次数是否只依赖输入规模。 建立一个算法基本操作执行次数的求和表达式。 利用求和运算的标准公式和法则来建立一个操作次数的闭合公式,或者至少确定它的增长次数。 O(1)Temp=i;i=j;j=
您可能关注的文档
- C8-3销售管理 销售组织的薪酬设计(南京)HB270728V7.ppt
- CAD2006教程第3章.ppt
- CAD2004基础入门教程.ppt
- C6,A8 智能钥匙培训 2010.04.16.ppt
- CAD机械制图 2010实用教程.ppt
- CAD必看课件 第6章 文字和尺寸标注.ppt
- CAE二00三年人力资源研究峰会纪要(PPT 19页).ppt
- catia清华大学教程6.ppt
- cad视频教程 第一课【建筑资料】.ppt
- CAXA制造工程师2008项目6_齿轮造型.ppt
- 毕马威-银行业可持续相关信息披露:2024年报告周期基准分析结果.pdf
- 国信证券-金属行业中期投资策略:供给收缩需求稳增,逆全球化下金属价值重估.pdf
- 方正证券-基础化工行业-25Q2化工景气底部延续,关注业绩增量具备确定性的板块及个股.pdf
- 西部证券-京东物流-2618.HK-首次覆盖报告-开放创新、稳健成长的一体化供应链龙头.pdf
- 东北证券-机械设备行业机器人轻量化-材料与技术的革新之路.pdf
- 西部证券-康农种业-837403-首次覆盖报告:种业后起之秀大单品快速放量打开成长空间.pdf
- 平安证券-社会服务行业2025年中期策略报告:新世代、新需求、新消费.pdf
- 长城证券-Robotaxi正式推出量子计算迎来最新突破看好智驾、量子产业链长期发展.pdf
- 国盛证券-容知日新-688768-蓝海市场渗透率提升,预测性维护让工业更美好.pdf
- 广发证券-金融-银行行业:如何理解外币存款增量回升?.pdf
最近下载
- 电力设备公司产品制造车间生产定额计件工资实施办法.docx VIP
- 2023国有企业“三重一大”决策制度实施细则办法.pdf VIP
- 安徽大学《地球科学概论》课件-第4讲大气圈、冰冻圈、岩石圈.pptx VIP
- 国家开放大学(电大)《农业生态基础.》2020年09月春季期末考试真题及答案(试卷代号2794).pdf VIP
- 餐饮行业员工职业规划.pptx VIP
- 《数学数学期望》课件.ppt VIP
- 肾病内科专业疾病临床诊疗规范2025版.docx VIP
- 质量信得过班组培训课件.pptx VIP
- 《高级英语FacetoFacewithHurricaneCamille》-精选课件(公开).ppt VIP
- 高中化学课件:芳环上的亲核取代反应.pptx VIP
文档评论(0)