1.算法的概念:算法是指解决问题的一种方法或一个过程。更严格的讲,算法是指由若干条指令组成的又穷序列,且满足下述4个性质:
1)输入:有零个或多个由外部提供的量作为算法的输入。
2)输出:算法产生至少一个量作为输出。
3)确定性:组成算法的每条指令都是清晰,没有歧义的。
4)有限性:每条指令的执行次数和时间都是有限的。
程序是算法用某种程序设计语言的具体实现,程序可以不满足性质4)
2.算法复杂性分析:计算机资源中最重要的是时间和空间资源。因此,算法的复杂性有时间复杂性和空间复杂性。不言而喻,复杂性尽可能低的程序是追求的重要目标。
更确切的说,算法复杂性是算法运行所需要的计算机资源的量,这个量只依赖于要解得问题的规模,算法的输入和算法本身的函数,分别用N,I和A表示。通常A隐含在复杂性函数名当中,因而将时间复杂性(T)和空间复杂性(S)简写为T=T(N,I)和S=S(N,I)