算法(algorithm)

Posted zang1998

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法(algorithm)相关的知识,希望对你有一定的参考价值。

算法是什么?

算法是指令的集合,是为解决特定问题而规定的一系列操作。

它是明确定义的可计算过程,以一个数据集合作为输入,并产生一个数据集合作为输出。

一个算法通常来说具有以下五个特性:

  1.输入:一个算法应该以待解决问题的信息作为输入。

  2.输出:输入对应指令及处理后得到的信息。

  3.可行性:算法是可行的,即算法中的每一条指令都是可以实现的,均能在有限的时间内完成。

  4.有穷性:算法执行的指令个数是有限的,每个指令又是在有限时间内完成的,因此整个算法也是在有限时间内可以结束的。

  5.确定性:算法对于特定的合法输入,其对应的输出是唯一的。即当算法从一个特定的输入开始,多次执行同一条指令集结果总是相同的。简单的说,算法就是计算机解题的过程。在这个过程中,无论是形成解题思路还是编写程序,都是在实施某种算法。前者是算法的逻辑形式,后者是算法的代码形式。

 

举例:

  如何求0+1+2+3+....+10000=?

 算法一:依次相加(循环):while、do-while、for

 算法二:高斯解法 

      首尾相加 * 50 : (1+10000)*10000/2  --->  100 * 101/2

 算法三:使用递归实现

      sum(100) = sum(99)+100 --> sum(99) = sum(98)+99

        ....sum(2) = sum(1)+2 --> sum(1)=1

评价算法优劣的依据:复杂度(时间复杂度和空间复杂度)

算法的复杂性体现在运行该算法时的计算机所需资源的大小。

计算机资源最重要的是时间和空间资源,因此复杂度分为时间复杂度和空间复杂度

时间复杂度是执行算法所需要的计算工作量

空间复杂度是指执行这个算法所需要的内存空间

 

以上是关于算法(algorithm)的主要内容,如果未能解决你的问题,请参考以下文章

2018.3.10 bellman-ford algorithm, floyd-warshall algorithm and johnson's algorithm

前端面试&笔试爬坑算法 Algorithm

latex algorithm多级编号

latex algorithm 编号的问题!

(转)常用算法(Algorithm)的用法介绍

学习笔记初识算法(Algorithm)