1、算法(Algorithm)
(1)输入: 有零个或多个由外部提供的量作为算法的输入。
(2)输出:算法产生 至少一个量作为输出。
(3)确定性:组成算法的每条指令是清晰,无歧义的。
【定义】通俗地讲,算法是指解决问题的一种方法或一个过程。
严格地讲, 算法是若干指令的有穷序列,满足性质:(1)输入: 有零个或多个由外部提供的量作为算法的输入。
(2)输出:算法产生 至少一个量作为输出。
(3)确定性:组成算法的每条指令是清晰,无歧义的。
(4)有限性:算法中每条指令的执行次数是有限的,执行每条指令的时间也是有限的。
【程序与算法的区别】
程序是算法用某种程序设计语言的具体实现。
程序可以不满足算法的性质(4)。
例如操作系统,是一个在无限循环中执行的程序,因而不是一个算法。
操作系统的各种任务可看成是单独的问题,每一个问题由操作系统中的一个子程序通过特定的算法来实现。该子程序得到输出结果后便终止。
2、算法复杂性分析
【基本概念】
算法复杂性 = 算法所需要的计算机资源
算法的时间复杂性T(n);
算法的空间复杂性S(n)。
其中n是问题的规模(输入大小)。
算法复杂只依赖于