第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > 算法与数据结构_数据结构与算法专题--算法基本概念

算法与数据结构_数据结构与算法专题--算法基本概念

时间:2020-01-27 08:43:56

相关推荐

算法与数据结构_数据结构与算法专题--算法基本概念

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

1.算法的特征

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

2.算法分类

1、按照应用来分类

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

2、按照确定性来分类

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

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

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

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

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

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

4.算法的性能评价

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

1、时间复杂度

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

2、空间复杂度

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

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

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

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。