数据结构最基础的十大算法 数据结构与算法专题--算法基本概念

很多开发者都知道“程序=数据结构 算法”这个著名的公式,并不真正明白算法的定义或概念。究竟什么是算法呢?从字面意义上理解,算法即用于计算的方法,通过这种方法可以达到预期的计算结果。

数据结构最基础的十大算法 数据结构与算法专题--算法基本概念(1)

1.算法的特征
  • 有穷性:算法的指令或步骤的执行次数是有限的,执行时间也是有限的。
  • 确切性:算法的每一个指令或步骤都必须又明确的定义和描述。
  • 输 入:一个算法应该又相应的输入条件,用来刻画运算对象的初始情况。
  • 输 出:一个算法应该又明确的结果输出。这是容易理解的,因为没有得到结果的算法毫无意义。
  • 可行性:算法的执行步骤必须是可行的,且可以在有限时间内完成。
  • 2.算法分类

    1、按照应用来分类

    按照算法的应用领域,即解决的问题,算法可以分为基本算法、数据结构相关的算法、几何算法、图论算法、规划算法、数值算法、数值分析算法、加密/解密算法、排序算法、查找算法、并行算法和数论算法等。

    2、按照确定性来分类

    按照算法结果的确定性来分类,算法可以分为确定性算法和非确定性算法。

    • 确定性算法:这类算法在有限的时间内完成计算,得到的结果是唯一的,且经常取决于输入值。
    • 非确定性算法:这类算法在有限的时间内完成计算,单是得到的结果往往不是唯一的,即存在多值性。

    3、按照算法的思路来分类

    按照算法的思路来分类,算法可以分为递推算法、递归算法、穷举算法、贪婪算法、分治算法、动态规划算法和迭代算法等多种算法。

    3.算法与数据结构的关系

    数据结构是数据的组织形式,可以用来表征特定的对象数据。在计算机程序设置中,操作的对象是各式各样的数据,这些数据往往拥有不同的数据结构,如数组、结构体、联合、指针和链表等。因为不同的数据结构所采用的处理方法不同,计算的复杂度也不同,因材算法往往依赖于某种数据结构。也就是说,数据结构的算法实现的基础。(程序=数据结构 算法)

    4.算法的性能评价

    一个算法的优劣往往通过算法复杂度来衡量,算法复杂度包括时间复杂度和空间复杂度两个方面。

    1、时间复杂度

    时间复杂度即通常所说的算法执行所需要耗费的时间,时间越短,算法越好。一个算法执行的时间往往无法精确估计,通常需要在实际的计算机中运行才能够知道。但是,也可以对算法的代码进行估计,而得到算法的时间复杂度。

    2、空间复杂度

    空间复杂度是指算法程序在计算机中执行所消耗的存储空间。空间复杂度可以分为如下两个方面。

    1)程序保存所需要的存储空间,即程序大小。

    2) 程序在执行中所需要小号的存储空间资源,如程序在执行过程中的中间变量等。

    一般来说,程序的大小越小,执行过程中消耗的资源越少,这对程序就越好。

    ,

    免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

      分享
      投诉
      首页