第1章 算法概述
1.1 算法与程序
算法指解决问题的一种方法或一个过程。
更严格地说,算法是由若干条指令组成的有穷序列。
且满足4条性质:
(1)输入:有零个或多个由外部提供的量作为算法的输入。
(2)输出:算法产生至少一个量的作为输出。
(3)确定性:组成算法的每条指令是清晰的,无歧义的。
(4)有限性:算法中每条指令的执行次数是有限的,执行次数是有限的,执行每条指令的时间也还是有限的。
程序是算法用某种程序设计语言的具体实现。
1.2 算法复杂性分析
算法的复杂性:算法运行所需要的计算机资源的量。
时间复杂度:需要时间资源的量。
按照O的定义,运算规则:
1.3 NP完全性理论
(1)合取范式的可满足问题 CNF-SAT
(2)三元合取范式的可满足性问题
(3)团问题 CLIQUE
(4)顶点覆盖问题VERTEX-COVER
(5)子集和问题SUBSET-SUM
(6)哈密顿回路问题 HAM-CYCLE
(7)旅行售货员问题 TSP