此文章只作为自己看算法导论的一些理解和想法,希望自己能坚持下去。
算法的在计算中的应用
什么是算法?算法的作用?为什么要研究算法?对于算法我常有的想法是必然和数学相关,而且必定是高等数学之上的。甚至很多目前存在的问题可能找不到合适的算法。那么算法是什么呢?
在书中说的是:任何良定义的计算过程,该过程取某个值或值的集合作为输入并产生****某个值或值的集合作为输出。算法就是把输入转换成输出的计算步骤的一个序列。
对比《计算机程序设计艺术》对算法的特征归纳,良定义可以认为是算法的描述必须无歧义、明确,必然在有限个步骤内完成,并且可以实现。这就是良定义的含义。这里无歧义、明确表示的是算法的执行结果是精确的符合要求和期望。
这里算法就成了求解良说明的计算问题的工具,问题的陈述说明了期望的输入和输出的关系,而算法则描述了一个特定的计算过程来实现这种关系。
例如,简单的排序,期望的输入输出关系是给一个乱序的数组,期望输出一个从小到大或者从大到小的序列。各种排序算法就实现了这种关系。类似一个黑箱,外面只有输入口和输出口,而我们就要创建这种黑箱。
算法可以解决很多问题,应用在各个领域基因工程,电子商务,制造业,互联网等,有些领域的细节已经超出了《算法导论》可以涵盖的范围;还有一些实际问题,最短路径,最长重叠子串,部件依赖,等。这些问题都有两个特征: