【入门级-算法-2、入门算法:枚举法】
枚举法(Brute Force):是一种直接遍历所有可能情况的算法思想,适合解决数据范围较小的问题。它的核心是穷举所有可能性,并检查哪些情况符合要求。
枚举法的基本思想:计算机主要功能,或者说它的优势就是算力强大,穷举所有可能看着有些笨拙,但是对于计算机来说不是什么问题,因此我们要善于利用这种思想进行程序设计。
枚举法的应用场景
问题没有明显的数学规律,只能暴力尝试。
需要找到所有可能的解(如排列组合)。
枚举法的思维步骤:
确定枚举范围(不重复、不遗漏)。
逐个检查 每个可能的解。
筛选出符合条件的解。
C++ 枚举法代码示例
求解 a + b = 100 的所有正整数解
#include
using namespace std;
int main() {
cout << “a + b = 100 的所有正整数解:” << endl;
for (int a = 1; a < 100; a++) {
int b = 100 - a;
cout << a << " + " << b << " = 100" << endl;
}
return 0;
}
输出:
1 + 99 = 100
2 + 98 = 100
…
99 + 1 = 100
枚举法的优缺点
优点:
思路简单,容易实现,适用于小规模问题。
对于小规模问题,效率可以接受。
能够找到所有可能的解。
缺点:
当数据量大时,可能会做很多无用功。
时间复杂度高,效率低,不适合大规模问题。