技术资讯>技术文章
程序赖以生存的算法到底是什么?
        什么是算法?
        直白地说,算法就是任何明确定义的计算过程,它接收一些值或集合作为输入,并产生一些值或集合作为输出。这样,算法就是将输入转换为输出的一系列计算过程。
        简而言之,我们可以说算法就是用来解决一个特定任务的一系列步骤(是的,不止计算机在使用算法,人类也同样如此)。目前,一个有效的算法应该含有三个重要特性:
        1.它必须是有限的:如果你设计的算法永无休止地尝试解决问题,那么它是无用的。
        2.它必须具备明确定义的指令:算法的每一步都必须准确定义,在任何场景下指令都应当没有歧义。
        3.    它必须是有效的:一个算法被设计用以解决某个问题,那么它就应当能解决这个问题,并且仅仅使用纸和笔就能证明该算法是收敛的。
        算法的特点?
        1、有穷性:一个算法必须保证执行有限步之后结束;    
        2、确切性:算法的每一步骤必须有确切的定义;    
        3、输入:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定除了初始条件;    
        4、输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;    
        5、可行性:算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。
        算法与程序的关系
        1.一个程序不一定满足有穷性。例操作系统,只要整个系统不遭破坏,它将永远不会停止,即使没有作业需要处理,它仍处于动态等待中。因此,操作系统不是一个算法。
        2.程序中的指令必须是机器可执行的,而算法中的指令则无此限制。
        3.算法代表了对问题的解,而程序则是算法在计算机上的特定的实现。一个算法若用程序设计语言来描述,则它就是一个程序.
        因此来说,算法与程序是密不可分的,甚至对于现在流行的AI(人工智能)来说,也是至关重要的一项挑战,人工智能的运用与支撑就是需要庞大与稳健的算法来提供的,因此,算法是整个互联网行业必不可少的技术。