导航:首页 > 源码编译 > 评价算法

评价算法

发布时间:2022-02-16 19:55:11

❶ 如何评价一个算法的好坏

首先,这个算法必须是正确的
其次,好的算法应该是友好的,便于人们理解和交流,并且是机器可执行的。
这个算法还需要足够健壮,即当输入的数据非法或不合理时,也能适当的做出正确的反应或进行相应的处理
最后它还必须拥有高效率和低存储量要求。
也就是所谓的时间复杂度和空间复杂度

1.时间复杂度

定义:在计算机科学中,算法的时间复杂度是一个函数,他定量描述了该算法的运行时间.一个算法执行所耗费的时间,从理论上讲,只有你把你的程序放机器上跑起来,才能知道.然而我们有一套时间复杂度的分析方式.一个算法所花费的时间与其中语句的执行次数成正比例.算法中的基本操作的执行次数,为算法的时间复杂度.

2.时间复杂度为什么不使用时间来衡量而使用基本语句的运行次数来衡量?

算法的执行时间依赖于具体的软硬件环境,所以,不能用执行时间的长短来衡量算法的时间复杂度,而要通过基本语句执行次数的数量级来衡量。

3.时间复杂度的O渐进表示法(Big O notation)

是用于描述函数渐进行为的数学符号.

大O阶方法推导:
计算基本语句的执行次数的数量级;
只需计算基本语句执行次数的数量级,这就意味着只要保证基本语句执行次数的函数中的最高次幂正确即可,可以忽略所有低次幂和最高次幂的系数。这样能够简化算法分析,并且使注意力集中在最重要的一点上:增长率。
如果算法中包含嵌套的循环,则基本语句通常是最内层的循环体,如果算法中包含并列的循环,则将并列循环的时间复杂度相加。例如:

for (i=1; i<=n; i++)
x++;
for (i=1; i<=n; i++)
for (j=1; j<=n; j++)
x++;

第一个for循环的时间复杂度为Ο(n),第二个for循环的时间复杂度为Ο(n2),则整个算法的时间复杂度为Ο(n+n2)=Ο(n2)。

4.时间复杂度的:最优、平均、最差情况,为什么时间复杂度看的是最差情况?

最差情况下的复杂度是所有可能的输入数据所消耗的最大资源,如果最差情况下的复杂度符合我们的要求,我们就可以保证所有的情况下都不会有问题。

某些算法经常遇到最差情况。比如一个查找算法,经常需要查找一个不存在的值。
也许你觉得平均情况下的复杂度更吸引你,可是平均情况也有几点问题。第一,难计算,多数算法的最差情况下的复杂度要比平均情况下的容易计算的多,第二,有很多算法的平均情况和最差情况的复杂度是一样的. 第三,什么才是真正的平均情况?如果你假设所有可能的输入数据出现的概率是一样的话,也是不合理的。其实多数情况是不一样的。而且输入数据的分布函数很可能是你没法知道。
考虑最好情况的复杂度更是没有意义。

5.如何求解:二分查找、递归求阶乘、递归斐波那契的时间复杂度?

二分查找:通过折纸查找求解时间复杂度为O(logN);
递归求阶乘:数基本操作递归N次得到时间复杂度为O(N);
递归斐波那契:分析得出基本操作递归了2N次,时间复杂度为O(2N);

6.什么是空间复杂度?

空间复杂度是对一个算法在运行过程中临时占用存储空间大小的度量.空间复杂度不是程序占用了多少bytes的空间,因为这个也没太大意义,所以空间复杂度算的是变量的个数.空间复杂度计算规则基本跟时间复杂度类似,也使用大O渐进法表示.

7.如何求空间复杂度? 普通函数&递归函数

一个算法的空间复杂度只考虑在运行过程中为局部变量分配的存储空间的大小,它包括为参数表中形参变量分配的存储空间和为在函数体中定义的局部变量分配的存储空间两个部分。若一个算法为 递归算法,其空间复杂度为递归所使用的堆栈空间的大小,它等于一次调用所分配的临时存储空间的大小乘以被调用的次数(即为递归调用的次数加1,这个1表示开始进行的一次非递归调用)。算法的空间复杂度一般也以数量级的形式给出。如当一个算法的空间复杂度为一个常量,即不随被处理数据量n的大小而改变时,可表示为O(1);当一个算法的空间复杂度与以2为底的n的对数成正比时,可表示为O(log2n);当一个算法的空间复杂度与n成线性比例关系时,可表示为O(n).若形参为数组,则只需要为它分配一个存储由实参传送来的一个地址指针的空间,即一个机器字长空间;若形参为引用方式,则也只需要为其分配存储一个地址的空间,用它来存储对应实参变量的地址,以便由系统自动引用实参变量。
8. 分析递归斐波那契数列的:时间、空间复杂度,并对其进行优化,伪递归优化->循环优化

long long Fib(int N) {
if (N < 3)
return 1;
return Fib(N - 1) + Fib(N - 2);
}

普通递归实现的斐波那契数列:
时间复杂度:O(2^n)

计算并根据O渐进表示法得出时间复杂度.

空间复杂度:O(N);递归深度乘以(每一次递归的空间占用{有辅助空间或常量})

伪递归优化:

long long fib (long long first, longlong second, int N) {
if(N <3)
return 1;
if(N == 3)
return first + second;
return fib(second, first+second,N-1);
}

时间复杂度:
O(N);
递归深度乘以每次递归的循环次数
空间复杂度:
O(1)或O(N)
关键看编译器是否优化,优化则为O(1)否则O(N);

循环优化:

long long Fib(int N) {
long long first = 1;
long long second = 1;
long long ret = 0;
for (int i = 3; i <= N ; ++i) {
ret = first + second;
first = second;
second = ret;
}
return second;
}

时间复杂度:O(N);

空间复杂度:O(1);

9.常见时间复杂度

常见的算法时间复杂度由小到大依次为: Ο(1)<Ο(log2n)<Ο(n)<Ο(nlog2n)<Ο(n2)<Ο(n3)<…<Ο(2n)<Ο(n!) Ο(1)表示基本语句的执行次数是一个常数,一般来说,只要算法中不存在循环语句,其时间复杂度就是Ο(1)。Ο(log2n)、Ο(n)、Ο(nlog2n)、Ο(n2)和Ο(n3)称为多项式时间,而Ο(2n)和Ο(n!)称为指数时间。

❷ 算法的评价指标有哪些

时间复杂度和空间复杂度。

1、时间复杂度

算法的时间复杂度是指执行算法所需要的计算工作量。一般来说,计算机算法是问题规模n 的函数f(n),算法的时间复杂度也因此记做。

T(n)=Ο(f(n))

因此,问题的规模n 越大,算法执行的时间的增长率与f(n) 的增长率正相关,称作渐进时间复杂度(Asymptotic Time Complexity)。

2、空间复杂度

算法的空间复杂度是指算法需要消耗的内存空间。其计算和表示方法与时间复杂度类似,一般都用复杂度的渐近性来表示。同时间复杂度相比,空间复杂度的分析要简单得多。

空间复杂度记做S(n)=O(f(n))。比如直接插入排序的时间复杂度是O(n^2),空间复杂度是O(1) 。而一般的递归算法就要有O(n)的空间复杂度了,因为每次递归都要存储返回信息。一个算法的优劣主要从算法的执行时间和所需要占用的存储空间两个方面衡量。

(2)评价算法扩展阅读:

算法的方法:

1、递推法

递推是序列计算机中的一种常用算法。它是按照一定的规律来计算序列中的每个项,通常是通过计算机前面的一些项来得出序列中的指定项的值。其思想是把一个复杂的庞大的计算过程转化为简单过程的多次重复,该算法利用了计算机速度快和不知疲倦的机器特点。

2、递归法

程序调用自身的编程技巧称为递归(recursion)。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。

一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。

注意:

(1) 递归就是在过程或函数里调用自身.

(2) 在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。

❸ 应该从哪些方面分析和评价算法的性能

摘要 一、算法的正确性。

❹ 评价算法优劣的标准是

同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。一个算法的评价主要从时间复杂度和空间复杂度来考虑。

时间复杂度

算法的时间复杂度是指执行算法所需要的计算工作量。一般来说,计算机算法是问题规模n 的函数f(n),算法的时间复杂度也因此记做。

T(n)=Ο(f(n))

因此,问题的规模n 越大,算法执行的时间的增长率与f(n) 的增长率正相关,称作渐进时间复杂度

空间复杂度

算法的空间复杂度是指算法需要消耗的内存空间。其计算和表示方法与时间复杂度类似,一般都用复杂度的渐近性来表示。同时间复杂度相比,空间复杂度的分析要简单得多。

正确性

算法的正确性是评价一个算法优劣的最重要的标准。

可读性

算法的可读性是指一个算法可供人们阅读的容易程度。

健壮性

健壮性是指一个算法对不合理数据输入的反应能力和处理能力,也称为容错性。

(4)评价算法扩展阅读

算法可大致分为基本算法、数据结构的算法、数论与代数算法、计算几何的算法、图论的算法、动态规划以及数值分析、加密算法、排序算法、检索算法、随机化算法、并行算法,厄米变形模型,随机森林算法。

算法可以宏泛的分为三类:

一,有限的,确定性算法 这类算法在有限的一段时间内终止。他们可能要花很长时间来执行指定的任务,但仍将在一定的时间内终止。这类算法得出的结果常取决于输入值。

二,有限的,非确定算法 这类算法在有限的时间内终止。然而,对于一个(或一些)给定的数值,算法的结果并不是唯一的或确定的。

三,无限的算法 是那些由于没有定义终止定义条件,或定义的条件无法由输入的数据满足而不终止运行的算法。通常,无限算法的产生是由于未能确定的定义终止条件。

参考资料:算法--网络

❺ 评价算法的四个标准是什么

评价算法的四个标准:
1.正确性
能正确地实现预定的功能,满足具体问题的需要。处理数据使用的算法是否得当,能不能得到预想的结果。
2.
易读性
易于阅读、理解和交流,便于调试、修改和扩充。写出的算法,能不能让别人看明白,能不能让别人明白算法的逻辑?如果通俗易懂,在系统调试和修改或者功能扩充的时候,使
系统维护
更为便捷。
3.
健壮性
输入非法数据,算法也能适当地做出反应后进行处理,不会产生预料不到的运行结果。数据的形式多种多样,算法可能面临着接受各种各样的数据,当算法接收到不适合算法处理的数据,算法本身该如何处理呢?如果算法能够处理异常数据,处理能力越强,健壮性越好。
4.时空性
算法的时空性是该算法的时间性能和空间性能。主要是说算法在执行过程中的时间长短和空间占用多少问题。
算法处理数据过程中,不同的算法耗费的时间和内存空间是不同的。
(5)评价算法扩展阅读:
算法是对特定
问题求解
步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。此外,一个算法还具有下列5个重要的特性。
(1)、有穷性
一个算法必须总是(对任何合法的输入值)在执行有穷步之后结束,且每一步都可在有穷时间内完成。
(2)、确定性
算法中每一条指令必须有明确的含义,读者理解时不会产生
二义性
。即对于相同的输入只能得到相同的输出。
(3)、可行性
一个算法是可行的,即算法中描述的操作都是可以通过已经实现的
基本运算
执行有限次来实现的。
(4)、输入
一个算法有零个或多个的输入,这些输入取自于某个特定的对象的集合。
(5)、输出
一个算法有一个或多个的输出,这些输出是同输入有着某种特定关系的量。

❻ 评价算法优劣的指标包括算法的什么

1、时间复杂度

算法的时间复杂度是指执行算法所需要的计算工作量。一般来说,计算机算法是问题规模n 的函数f(n),算法的时间复杂度也因此记做。

2、空间复杂度

算法的空间复杂度是指算法需要消耗的内存空间。其计算和表示方法与时间复杂度类似,一般都用复杂度的渐近性来表示。同时间复杂度相比,空间复杂度的分析要简单得多。

3、正确性

算法的正确性是评价一个算法优劣的最重要的标准。

4、可读性

算法的可读性是指一个算法可供人们阅读的容易程度。

5、健壮性

健壮性是指一个算法对不合理数据输入的反应能力和处理能力,也称为容错性。

❼ 评价算法的因素有哪些

1.时间复杂度
算法的时间复杂度是指执行算法所需要的时间。一般来说,计算机算法是问题规模n 的函数f(n),算法的时间复杂度也因此记做。

T(n)=Ο(f(n))

因此,问题的规模n 越大,算法执行的时间的增长率与f(n) 的增长率正相关,称作渐进时间复杂度

2.空间复杂度
算法的空间复杂度是指算法需要消耗的内存空间。其计算和表示方法与时间复杂度类似,一般都用复杂度的渐近性来表示。同时间复杂度相比,空间复杂度的分析要简单得多。

3.正确性

算法的正确性是评价一个算法优劣的最重要的标准。

4.可读性

算法的可读性是指一个算法可供人们阅读的容易程度。
5.健壮性
健壮性是指一个算法对不合理数据输入的反应能力和处理能力,也成为容错性。

❽ 描述算法评价的准则

时间复杂度(主要),空间复杂度(次要)

❾ 算法的评价指标包括什么


一、企业网站评价原则
1、企业网站评价的动态性:由于企业网站本身是一个动态交互的信息平台,因此其评价体系就应当从动态角度出发。
2、企业网站评价的差异性:由于不同行业、不同企业、不同发展阶段,其评价标准是不同的。因此在具体的评价过程中,也应当视具体情况具体分析。
3、企业网站评价的整体性:由于企业网站本身的原因,决定了在评价标准中既有可以量化的标准,又有不可量化的标准。因此在评价中,应当遵从整体性的原则。

二、企业网站评价的指标体系
(一)整体评价
1、域名和URL:域名是Internet上的一个服务器或一个网络系统的名字,在Internet上,没有同样的域名,因此,域名具有唯一性。域名是由英文26个字母和10个阿拉伯数字以及横杠"-"(减号)组成。URL——(Universal Resource Locator)通用资源定位器。一个恰当、精炼的域名对于网站的发展是十分重要的。同时,独立域名是十分重要的一项指标。

2、链接有效性:在企业网站中,链接有效性占有及其重要的地位。无效链接会直接影响用户对网站本身的信任度。在指标评价过程中,链接的完备性是也一项十分重要的指标。

3、下载时间:调查显示,一个网页的打开时间超过20秒会引起浏览者的厌恶感。中国在2002年以拨号方式上网的计算机为1480万台,占总上网计算机的71% 。因此在实际的评价中,网页的加载速度应当以拨号方式来进行测评;同时为了简化评价复杂程度,在实测的过程中,仅考虑首页的下载时间。

4、网站认证:作为一个合法的企业网站,不仅应当提供工商认证,同时还要提供CA认证。对于某些特定行业,还应该提供各种相应认证。

5、符合网络伦理:所谓网络伦理,是Internet上一种特有的商业道德——即充分尊重用户的个人意愿和个人隐私,对用户不能有任何的强迫行为。如不首先发送商业信息,不经过授权的修改、公布访问者的个人资料和信息,或对用户访问提出要求和条件。

6、联系方式:在首页和网站的各个链接上,都需要体统十分详尽的联系方式。不但要提供电子邮件、电话、传真;还要提供公司地址、邮编以及联系人姓名。

7、更新:网站提供内容和页面设计的不断更新;以提高网站的信任度。更为重要的是,最好应当注明网站的最后一次更新时间。

(二)网站设计
1、风格与布局:网站内的所有页面应当遵从统一的风格。包括统一色彩、统一主题、统一语气和人称、统一图片效果。同时在页面布局方面,应当加强视觉效果,加强文案的可视性和可读性。

2、美工与字体:网页色彩应当均衡,要突现可读性;同时切忌将所有颜色都用到,一般要求色彩要控制在3种以内。由于中国大陆汉字系统采用GB编码方式,而台湾地区汉字采用BIG5编码,而欧美用户则没有安装任何支持汉字的系统;鉴于此,定位于国际性质的网站应当针对不同的目标访问者,设计不同的字体或语言。

3、动画与声音:在页面上应该慎用动画和声音,更不能滥用。因为一方面会影响下载速度,另一方面可能会招致用户的厌恶和抵触情绪。

(三)内容提供
1、有用信息
(1) 网站的长期发展是取决于能否长期为访问者提供有用的信息,这个也是网站自身发展的需要。
(2) 准确性:信息资源与数据是否切实可信。如果涉及一些关于信息来源与知识产权的信息,要注明出处与来源。

2、交互性内容
(1) 提供双向交流:网站双向交流的栏目不需要很多,但是作为一个企业网站来说,应当设立如,论坛、留言版、邮件列表之类的栏目;以供浏览者留下他们的信息。有调查表明,提供双向交流站点较简单地留下一个E-mail地址更有亲和力。
(2) FAQ’s:Frequently Asked Questions——常见问题解答;因为企业网站经常收到用户关于某一方面问题的来信,,应当设立一个常见问题解答,既方面访问者,也可以节约网站时间和成本。
3、内容页面长度:网页内容页面的长度以不超过3个屏幕高度为佳,因此将篇幅过长的文档分隔成数篇较小的页面,可以增加网站的亲和力;如果基于特殊理由,应在长页面上加上一些书签,以使用户快速查询。

(四)网站推广与其他
1、搜索引擎中的排名:Meta的使用,Meta标签是纪录当前页面信息的元素,如字符译码、作者、版权、关键字等。Meta标签也提供该服务器信息,如有效日期和刷新频率。正是基于Meta的功能,搜索引擎可以自动找到WEB上的信息。
2、适当的关键词:用户很大程度上搜索目标信息和企业网站习惯于通过搜索引擎。所以一些具有战略性的关键词是十分重要的

3、其他网站提供的交换链接的数量

4、兼容性问题:
(1) 显示兼容:在800*600、1024*768……分辨率条件下能够显示正常。
(2) 操作系统兼容:在WINDOWS9.X/ME/NT/2000/XP/2003、Linux、Mac等操作系统中运行正常。
(3) 浏览器兼容:在IE(1—6)、Netscape(1—6)、Opera(1—7)等浏览器中运行正常。

5、网站服务:
(1) E-mail的自动回复(即时)、E-mail的人工回复(24小时)包括节假日
(2) 电话和传真回复
(3) 800免费电话的提供
(4) 客户资料的保留和挖掘

三、企业网站的综合评价指标体系
企业网站的多指标综合评价应当包括3方面的内容:一是综合评价指标体系及其评价标准的建立,这是整个评价工作的前提;二是用定性或定量的方法确定各指标的具体数值,即指标评价值;三是各评价值的综合,包括综合算法和权重的确定、总评价值的计算等。

阅读全文

与评价算法相关的资料

热点内容
什么小说刚上架服务器崩了 浏览:154
服务器如何在运行里面services 浏览:616
微赞微擎源码最新版 浏览:851
有什么下载软件的app推荐 浏览:104
云浮数据加密有哪些 浏览:166
工地招聘会都有什么app 浏览:478
电信运营商的服务器叫什么 浏览:372
安卓腾讯收藏文件夹 浏览:921
读取文件的行数python 浏览:751
非所称加密方法的优点是 浏览:355
文件夹一般被什么占用 浏览:73
他们的命令英语 浏览:811
文件夹如何打开默认最大化 浏览:314
怎么测试阿里云服务器网络 浏览:928
自己的点脑的服务器地址 浏览:606
大二学算法还有 浏览:232
linux解压命令war 浏览:718
mov压缩mac 浏览:240
怎么做点歌服务器 浏览:501
java混淆编译 浏览:380