1.穷举搜索法
对候选解进行逐一枚举和检验。所需时间长。
2.迭代算法
通过一初始估计值来找一系列近似解的过程。多用于求方程或方程组的解。
3.递推算法
能从规模n=0推出n=i-1的解进而推出目标的规模为n的解。
4.递归算法
直接或间接的调用自身。要有递归出口。要防止堆栈溢出。
5.分治算法
把复杂问题分解成两个或更多相似的子问题。
6.贪心算法
把求解的问题分为若干个子问题,得到子问题的局部最优解,并合并为原来问题的一个解。并不一定能得到整体最优解。
7.动态规划算法
将原问题分解为子问题,通过子问题的解得到原问题的解。是一种途径好方法可应用于以上方法中。
8.回溯算法
先选择某一可能的线索进行试探,每一步试探都有多种方式,将每种方式一一探索,如有问题就返回纠正,反复纠正,知道得到全部符合条件的答案或问题无解为止。在算法中需要建立一个堆栈,用来保存搜索路径。一旦产生的部分解序列不合要求,就要从堆栈中找到回溯的前一个位置,继续试探。
9.分支界限算法
对所有可行解进行搜索,执行时把全部可行的解空间不断分割为越来越小的子集,并为每个子集内的解定界。在每次分支后,对所有界限超出可行解的子集不再分支,从而缩小搜索范围。