下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

学习算法分析的基础知识

作者:Gman     来源: http://www.kokojia.com点击数:1200发布时间: 2018-03-18 08:00:03

标签: 程序数据结构KNN算法

大神带你学编程,欢迎选课

  计算机程序,是指为了得到某种结果而可以由计算机等具有信息处理能力的装置执行的代码化指令序列,或者可以被自动转换成代码化指令序列的符号化指令序列或者符号化语句序列。在这一篇教程里面,小编主要和大家简单的介绍一下:学习算法分析的基础知识。

学习算法分析的基础知识_程序_数据结构_KNN算法_课课家

  不知道大家是否知道,在计算机解决问题的过程里面,数据结构以及算法这两者是程序的两大要素,这两者之间相辅相成,缺一不可。数据结构以及算法这两者的好坏直接相关,一种数据结构的优劣是由实现其各种各样运算的算法体现的。对数据结构的分析实质上也表现为对实现其多种运算的算法分析。就小编个人认为,算法分析是一个相对来说比较复杂的问题,它首先涉及到优劣准则的确定。那么问题就来了?我们应该怎样判断一个算法的优劣呢?主要有以下几个标准,具体的标准如下所示:

  第一个标准:正确性

  正确性要求算法能够正确地执行规定的功能,这一个标准是最重要也是最基本的准则;

  第二个标准:可使用性

  算法应当是可读的,换一句话来说,也就是可读性好。为了能够达到这一个要求,算法的逻辑必须是清晰的、简单的以及结构化的;

  第三个标准:健壮性

  健壮性只要要求算法具有非常好的容错性,也就是提供例外处理,能够直接对一些不合理的数据进行检查,不会经常出现异常中断又或者是死机的现象;

  第四个标准:效率

  算法的效率所代表的意思就是算法执行的时候计算机资源的消耗,当然啦,这也存储以及运行时问的开销,前者我们将其叫做算法的空间代价,后者叫做算法的时间代价。

  在这里大家都需要注意一点,那就是时间代价是常用的评价指标,往往用时间复杂度来进行衡量。当一个算法转换成程序并在计算机上执行的时候,它的运行所需要的时间总是取决于下列因素,具体的如下所示:

  1、硬件的速度

  CPu速度以及存取数据这两者的速度越快,也就是程序的执行时间越短;

  2、所选用的程序设计语言

  程序设计语言的级别越高,那么它的执行效率就会越低了。就比如说:汇编语言程序的执行效率往往都要高于高级算法语言;

  3、编译程序所生成目标代码的质量

  对于代码优化比较好的编译程序,其所生成的程序质量较高。就比如说:代码效率优化过的{{C++语言}}程序比并没有经过任何优化的编程代码效率要高;

  4、问题的规模

  非常显然,大规模的问题求解过程比小规模的问题相对来说更耗费时间。

  显然,在各种各样因素都不可以确定的情况下,非常难比较算法的执行时间。换一句话来说,也就是使用执行算法的绝对时间来衡量算法的效率,这是不合适的哦。为此,我们能够直接将上述各种各样与计算机相关的软、硬件因素通通都确定下来。这样子的话,一个特定算法的运行工作量的大小就仅仅只依赖于问题的规模,又或者是说它是问题规模的函数。

  另外一方面,假如说大家要全面地评价一个算法的优劣,不仅仅要考虑时间的耗费,还需要进行考虑算法对存储器的耗费。特别是对于大规模这一个问题,对空间耗费的分析是必不可少的。因此,分别有基于时间以及空间的算法分析,也就是算法的时间复杂度分析以及空间复杂度分析这两者。

  小编总结:

  计算机程序是由数据结构和算法构成的。它是指为了得到某种结果而可以由计算机等具有信息处理能力的装置执行的代码化指令序列,今天的教程,小编就已经介绍完毕了。

赞(23)
踩(1)
分享到:
华为认证网络工程师 HCIE直播课视频教程