下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、算法分析的两个主要方面算法分析是对一个算法需要多少计算时间和存储空间作定量的分析。算法(Algorithm )是解题的步骤,可以把算法定义成解一确定类问题的任意一种特殊的方法。在计算机科学中,算法要用计算机算法语言描述,算法代表用计算机解一类问题的精确、有效的方法。算法是一组有穷的规则,它们规定了解决某一特定类型问题的一系列运算,是对解题方案内的准确与完整地描述。制定一个算法,一般要经过设计、确认、分析、编码、测试、调 试、计时等阶段。算法+数据结构=程序,求解一个给定的可计算或可解的问题,不同的人可以编写出不同的程序,来解决同一个问题,这里存在两个问题:一是与计算方法密切相关的算法问题;二是
2、程序设计的技术问题。算法和程序之间存在密切的关系。分析算法可以预测这一算法适合在什么样的环境中有效地运行,对解决同一问题的不同算法的有效性作出比较。通常对于一个实际问题的解决,可以提出若干个算法,如何从这些可行的算法中找出最有效的算法呢?或者有了一个解决实际问题的算法后,如何来评价它的好坏呢?这些问题都需要通过算法分析来确定。评价算法分析性能的标准主要从算法执行时间和占用存储空间两 个方面进行考虑,即通过分析算法执行所需要的时间和存储空间来判断一个算法的优劣。时间复杂度一个程序的时间复杂度是指程序运行从开始到结束所需要的时间。影响因素一个算法是由控制结构 (顺序、分支和循环3种)和原操作(指固
3、定数据类型的操作)构成的,其执行时间取决于两者的综合效果。为了便于比较同一问题的不同算法,通常的做法是:从算法中选取一种对于所研究的问题来说基本运算的原操作,以该原操作重复执行的次数作为算法的时间度量。一般情况下,算法中原操作重复执行次数是规模n的某个函数T(n)。许多时候要精确的计算 T(n)是困难的,引入渐进时间复杂度在数量上估计一个算法的 执行时间,也能够达到分析算法的目的。计算方法计算时间复杂度的时候,主要考虑算法中最高阶项的开销,只要找出算法中最高阶的复杂度,就可以忽略低阶和常数的复杂度。引入数学符号“O来估算算法时间复杂度,渐进时间复杂度的表示方法:F(n)=O(g(n), 其定义
4、为,若F(n)和g(n)是定义在正整数集合上的两个函数,则F(n)=O(g(n)表示存在正的对一组特定个数的元素进行排序。对该组元素的排序是排序问题的一个实例。元素个数可视对一组特定个数的元素进行排序。对该组元素的排序是排序问题的一个实例。元素个数可视常数C和no,使得当nno时,都满足0 F(n) Cg(n)。换句话说,就是这两个函数当整 形自变量n趋于无穷大时,两者的比值是一个不等于0的常数。当要计算某个算法的时间复杂度F(n)时,可以找一个更简单的、阶数相同的简单算法g(n)等同计算,这里的g( n)是指替代函数,它具有和原算法一样更高阶复杂度。例如,一个程序的实际执行时间为:T(n)=
5、3n 3+4n 2+5 ,则T(n)=O(n 3)。使用0记号表示的算法的时间复杂度,称为算法的渐进时间复杂度。常见的渐进时间复杂度通常用0(1)表示常数计算时间。常见的渐进时间复杂度有:O (1) O (IOg2 ) O (R) O (JnIugJ CO (?) O (存) O (2n)规则为了便于估算一个算法的时间复杂度,我们约定一下几条可操作的规则:读写单个常量或单个变量、赋值、算术运算、关系运算、逻辑运算等,计为一个 单位时间。 条件语句if(C)s,执行时间为(条件C的执行时间)+ (语句块S的执行时间)。 条件语句if(C)s1 else s2 ,执行时间为(条件 C的执行时间)+
6、 (语句块si和s2 中执行时间最长的那个时间)。 SWitCh.case 语句的执行时间是所有CaSe子句中,执行时间最长的语句块。访问一个数据的单个元素或一个结构体变量的单个元素只需要一个单位时间。执行一个for循环语句需要的时间等于执行该循环体所需要时间乘上循环次数。 执行一个 WhiIe(C)s循环语句或者执行一个dos WhiIe(C)语句,需要的时间等于计算条件表达式 C的时间与执行循环 S的时间之和再乘以循环的次数。对于嵌套结构,算法的时间复杂度由嵌套最深层语句的执行次数决定的。对于函数调用语句,它们需要的时间包括两部分,一部分用于实现控制转移,另 一部分用于执行函数本身。空间复
7、杂度一个算法的空间复杂度是指程序运行从开始到结束所需的存储空间大小。程序的一次运行是针对所求解的问题的某一特定实例而言的。例如,求解排序问题的排序算法每次执行是为该实例的特征。程序运行所需要的存储空间主要包括两部分。固定部分这部分空间与所处理数据的大小和个数无关,或者称与问题的实例的特征无关。主要包括程序代码、常量、简单变量、定长成分的结构变量所占的空间。可变部分这部分空间大小与算法在某次执行中处理的特定数据的大小和规模有关。例如100个数据元素的排序算法与 1000个数据元素的排序算法所需要的存储空间显然是不同的。算法在运行过程中临时占用的存储空间随算法的不同而异。有的算法只需要占用少量的存
8、储空间,而且不随问题规模的大小而改变,有的算法需要占用的存储空间数随着问题规模n的增大而增大,此时按照最坏情况来分析应用在查找引擎优化范畴里边有一个疑问常常让人感受捉摸不透,到底是什么样的排序要素结尾决议了网页的排名。而每个查找引擎公司都将其的查找引擎算法维护的极端紧密,只要很少很少的一有些的公司能有时机看到这些算法的全貌。并且就算是有时机看到这些算法的真实容貌,要想领悟到话,还得具有深沉的数学功底。这使得对查找引擎优化整个概念的晓得变得很艰难算法应用和问题解决为了更快的回来查找成果给用户,查找引擎公司通常都会将巨大的运算简化,查找引擎所运用的这些算法都会设置一个用于比拟判别网站价值的根底准则
9、。不一样的查找引擎所运用的基准是不一样的。例如,在Google的算法中就运用了 200多个要从来构建这个基准。经过很多查找引擎爱好者的研讨与查找引擎的共享,大家也大约的晓得了查找引擎算法中的重要有些。可是要想晓得查找引擎的各个细节那是不能够的工作,更何况Google简直每天都会对算法做出很多的修改。有些修正会形成很大的影响,有些则仅仅一些细微的修正。查找算法的不断改变使得大家更难知晓算法的各个细节。算法优化在确定了算法之后,在构建网站(或是为SEo更新网站)时就能有一些能够遵照的准则。 在这些准则中,最重要的就是要以人为本,而不要为查找引擎描绘网站。所以,若是创立的 网站是关于春季休假的, 就
10、应该为用户供给与春季休假有关的信息和连接。在爬虫检索网站时,若是网站中含有指向机票预订网站、假目网站、花园展现网站或其他与春季休假有关的网站的连接,爬虫就会跟踪这些连接,并经过算法判别这些网站的关联性。若是这些网站都与春季休假有亲近的联系, 网站就能取得较高的排名。 若是网站连接的都是一些无关的网站, 就有能够查找爬虫视为连接场,网站排名会很差,乃至遭到屏蔽。其间难以确定的是,究竟网站中必须有多少关联网站的连接,又能够有多少无关网站的连接。从常理上说,若是描绘一个关于春季休假的网页,抱负的状况是进出这个网页的连接来自关联的网页。广告能够是一个破例,但这会被明确地标明为广告。 另一种状况就是网站上
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《供应链金融在中小企业融资中的风险控制与激励机制研究》教学研究课题报告
- 污水处理工创新实践模拟考核试卷含答案
- 园林康养师创新意识知识考核试卷含答案
- 电影摄影设备装配调试工岗前创新思维考核试卷含答案
- 磁记录材料生产工常识知识考核试卷含答案
- 电力电容器配件工安全实践知识考核试卷含答案
- 味精微生物菌种工安全知识宣贯考核试卷含答案
- 服装生产流水线管理规范
- 互联网+时代初中生物教学数字素养培养与教师培训效果评价教学研究课题报告
- 护理说课课件:一等奖风采展示
- 2026年大理供电局项目制用工招聘(60人)笔试备考试题及答案解析
- 2026重庆市航空应急救援总队公开招聘34人笔试模拟试题及答案解析
- GB/T 47355-2026外包指南
- 中国鼻咽癌诊治指南(2026版)
- 【2025年】组织行为学试题及答案
- 2026年国开电大建筑制图基础形考考前冲刺测试卷及完整答案详解(历年真题)
- 市场监督管理局全流程市场监管工作手册(标准版)
- UPS电源售后服务承诺书范本
- 统编人教版五年级语文下册《田忌赛马》示范教学课件
- 急性气管支气管炎课件教学
- GB/T 16124-2025水利水电工程环境健康影响评价技术规范
评论
0/150
提交评论