紫薇星上的数据结构(10)
终于来到最后一部分了,算法,这篇文章的出现也意味着这个系列就结束了,向着最后的胜利冲冲冲! 算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。 这一部分我们要整理的算法一般都是前人已经完善好的,大家如果不能理解其原理,那就学会如何使用就可以了。 简单来说算法就是解决特定问题的求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令都表示一个或者多个操作。这里要注意:同一个问题可能有多种不同的解决算法;没有一个通用算法可以解决所有问题。 一个算法应该具有以下 五个重要的特征 : 有穷性(Finiteness):算法的有穷性是指算法必须能在执行有限个步骤之后终止; 确切性(Definiteness):算法的每一步骤必须有确切的定义; 输入项(Input):一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件; 输出项(Output):一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的; 可行性