乐鱼体育安卓版下载

算法分析的两个主要方面

日期:2022-06-05 23:58:54 作者:乐鱼在线 来源:乐鱼体育安卓版下载 阅读:11

  算法分析是对一个算法需要多少计算时间和存储空间作定量的分析。 算法(Algorithm) 是解题的步骤,可以把算法定义成解一确定类问题的任意一种特殊的方法。在计算机科学中, 算法要用计算机算法语言描述,算法代表用计算机解一类问题的精确、有效的方法。

  算法是一组有穷的规则,它们规定了解决某一特定类型问题的一系列运算,是对解题方 案内的准确与完整地描述。制定一个算法,一般要经过设计、确认、分析、编码、测试、调 试、计时等阶段。

  算法数据结构=程序,求解一个给定的可计算或可解的问题,不同的人可以编写出不同 的程序,来解决同一个问题,这里存在两个问题:一是与计算方法密切相关的算法问题;二 是程序设计的技术问题。算法和程序之间存在密切的关系。分析算法可以预测这一算法适合 在什么样的环境中有效地运行,对解决同一问题的不同算法的有效性作出比较。

  通常对于一个实际问题的解决,可以提出若干个算法,如何从这些可行的算法中找出最 有效的算法呢?或者有了一个解决实际问题的算法后,如何来评价它的好坏呢?这些问题都 需要通过算法分析来确定。评价算法分析性能的标准主要从算法执行时间和占用存储空间两 个方面进行考虑,即通过分析算法执行所需要的时间和存储空间来判断一个算法的优劣。

  一个算法是由控制结构(顺序、分支和循环 3 种)和原操作(指固定数据类型的操作) 构成的,其执行时间取决于两者的综合效果。为了便于比较同一问题的不同算法,通常的做 法是:从算法中选取一种对于所研究的问题来说基本运算的原操作,以该原操作重复执行的 次数作为算法的时间度量。一般情况下,算法中原操作重复执行次数是规模 n 的某个函数 T(n)。许多时候要精确的计算 T(n)是困难的,引入渐进时间复杂度在数量上估计一个算法的 执行时间,也能够达到分析算法的目的。 计算方法

  计算时间复杂度的时候,主要考虑算法中最高阶项的开销,只要找出算法中最高阶的复 杂度,就可以忽略低阶和常数的复杂度。

  引入数学符号“O”来估算算法时间复杂度,渐进时间复杂度的表示方法:F(n)=O(g(n)), 其定义为,若 F(n)和 g(n)是定义在正整数集合上的两个函数,则 F(n)=O(g(n))表示存在正的

  常数 C 和 n0,使得当 nn0 时,都满足 0≤F(n) ≤Cg(n) 。换句话说,就是这两个函数当整 形自变量 n 趋于无穷大时,两者的比值是一个不等于 0 的常数。

  当要计算某个算法的时间复杂度 F(n)时,可以找一个更简单的、阶数相同的简单算法 g(n)等同计算,这里的 g(n)是指替代函数,它具有和原算法一样更高阶复杂度。

  例如,一个程序的实际执行时间为:T(n)=3n34n25,则 T(n)=O(n3) 。使用 O 记号表 示的算法的时间复杂度,称为算法的渐进时间复杂度。

  常见的渐进时间复杂度 通常用 O(1)表示常数计算时间。常见的渐进时间复杂度有:

  规则 为了便于估算一个算法的时间复杂度,我们约定一下几条可操作的规则: (1)读写单个常量或单个变量、赋值、算术运算、关系运算、逻辑运算等,计为一个

  单位时间。 (2)条件语句 if(C){s},执行时间为(条件 C 的执行时间)(语句块 s 的执行时间)。 (3)条件语句 if(C)s1 else s2,执行时间为(条件 C 的执行时间)(语句块 s1 和 s2

  中执行时间最长的那个时间)。 (4)switch...case 语句的执行时间是所有 case 子句中,执行时间最长的语句块。 (5)访问一个数据的单个元素或一个结构体变量的单个元素只需要一个单位时间。 (6)执行一个 for 循环语句需要的时间等于执行该循环体所需要时间乘上循环次数。 (7)执行一个 while(C){s}循环语句或者执行一个 do{s} while(C)语句,需要的时间等

  于计算条件表达式 C 的时间与执行循环 s 的时间之和再乘以循环的次数。 (8)对于嵌套结构,算法的时间复杂度由嵌套最深层语句的执行次数决定的。 (9)对于函数调用语句,它们需要的时间包括两部分,一部分用于实现控制转移,另

  一个算法的空间复杂度是指程序运行从开始到结束所需的存储空间大小。程序的一次运 行是针对所求解的问题的某一特定实例而言的。例如,求解排序问题的排序算法每次执行是 对一组特定个数的元素进行排序。对该组元素的排序是排序问题的一个实例。元素个数可视

  这部分空间与所处理数据的大小和个数无关,或者称与问题的实例的特征无关。主要包 括程序代码、常量、简单变量、定长成分的结构变量所占的空间。 可变部分

  这部分空间大小与算法在某次执行中处理的特定数据的大小和规模有关。例如 100 个 数据元素的排序算法与 1000 个数据元素的排序算法所需要的存储空间显然是不同的。

  算法在运行过程中临时占用的存储空间随算法的不同而异。有的算法只需要占用少量的 存储空间,而且不随问题规模的大小而改变,有的算法需要占用的存储空间数随着问题规模 n 的增大而增大,此时按照最坏情况来分析

  在查找引擎优化范畴里边有一个疑问常常让人感受捉摸不透,到底是什么样的排序要素 结尾决议了网页的排名。而每个查找引擎公司都将其的查找引擎算法维护的极端紧密,只要 很少很少的一有些的公司能有时机看到这些算法的全貌。并且就算是有时机看到这些算法的 真实容貌,要想领悟到话,还得具有深沉的数学功底。这使得对查找引擎优化整个概念的晓 得变得很艰难 算法应用和问题解决

  为了更快的回来查找成果给用户,查找引擎公司通常都会将巨大的运算简化,查找引擎 所运用的这些算法都会设置一个用于比拟判别网站价值的根底准则。不一样的查找引擎所运 用的基准是不一样的。例如,在 Google 的算法中就运用了 200 多个要从来构建这个基准。 经过很多查找引擎爱好者的研讨与查找引擎的共享,大家也大约的晓得了查找引擎算法中的 重要有些。可是要想晓得查找引擎的各个细节那是不能够的工作,更何况 Google 简直每天 都会对算法做出很多的修改。有些修正会形成很大的影响,有些则仅仅一些细微的修正。查 找算法的不断改变使得大家更难知晓算法的各个细节。 算法优化

  在确定了算法之后,在构建网站(或是为 SEO 更新网站)时就能有一些能够遵照的准则。 在这些准则中,最重要的就是要以人为本,而不要为查找引擎描绘网站。所以,若是创立的 网站是关于春季休假的,就应该为用户供给与春季休假有关的信息和连接。在爬虫检索网站 时,若是网站中含有指向机票预订网站、假目网站、花园展现网站或其他与春季休假有关的

  网站的连接,爬虫就会跟踪这些连接,并经过算法判别这些网站的关联性。若是这些网站都 与春季休假有亲近的联系,网站就能取得较高的排名。若是网站连接的都是一些无关的网站, 就有能够查找爬虫视为连接场,网站排名会很差,乃至遭到屏蔽。其间难以确定的是,究竟 网站中必须有多少关联网站的连接,又能够有多少无关网站的连接。从常理上说,若是描绘 一个关于春季休假的网页,抱负的状况是进出这个网页的连接来自关联的网页。广告能够是 一个破例,但这会被明确地标明为广告。另一种状况就是网站上一切的连接都是指向无关网 站的广告。这样的网页显然是不受欢迎的,网页在查找引擎中的排名天然也会降低。

  关键词也有相同的疑问。查找引擎偏心关键词密度较高的网站。无论是什么查找引擎, 内容都是重要的,但在怎么判别内容对网页排名的影响这个疑问上,各个查找引擎都有不一 样的办法。相同,元标签在各个查找引擎中的重要性也不尽相同。

乐鱼在线
乐鱼在线 @ 版權歸所有 乐鱼在线