暴力搜索 暴力搜索或穷举搜索在计算机科学中也称生成与测试是一种非常低效的解决问题的技术方法包括了系统地枚举解决方案的所有可能候选项以及检查每个候选项是否符合问题描述 找出自然数n的约数的暴力搜索算法将枚举出从到n的所有整数并检查它们中的每一个是否除n后没有余数针对八皇后问题的暴力搜索算法会检查所有在X棋盘上八个皇后可能的摆放方法并且对每一种摆放方法检查其每一个皇后是否能攻击到其它人 虽然暴力搜索很容易实现并且如果解决方案存在就一定能够找到但是它的代价和候选方案的数量成正比由于这一点在很多实际问题中消耗的代价会随着问题规模的增加而快速地增长因此当问题规模有限或当存在可用于将候选解决方案的集合减少到可管理大小的针对特定问题的启发式算法时通常使用暴力搜索另外当实现方法的简单度比速度更重要的时候也会用到这种方法 例如在关键的应用中或当用计算机证明数学定理时算法中的任何错误将会导致严重的后果暴力搜索也可在其他基准化算法和启发式算法里用作基准方法事实上暴力搜索可以被看作最简单的启发式算法暴力搜索与回溯概念是不相同的在回溯算法中大量的解决方案并没有被枚举而直接被丢弃例如上文提到的八皇后问题的解决方案用于在表中查找一个项目也就是说顺序地检查表中所有条目的暴力方法被称为线性搜索