第1节:暴力算法
发布时间
阅读量:
阅读量
适用于以下两种情形:
- 可以提前明确每个状态所包含的元素数量N;
- 状态中各元素的可能取值构成一个连续的区间;
对暴力算法的优化策略包括:
- 降低整体搜索过程中所需遍历的状态数量;
- 借助关键信息减少冗余计算的出现;
- 将原始问题分解为若干更易处理的子问题;
- 结合问题特性实施针对性剪枝操作;
- 引入其他类型的算法进行协同处理;
求解一个字符串中所有元素的组合情况
例如,“1,2”的组合形式包括:{},{1},{2},{1,2}
对于每一个元素而言,存在被选中或未被选中的两种可能性,因此可以通过二进制位的方式来加以表示。
int fun(string s)
{
int n = (1 << s.size());
int i = 0;
int j = 0;
int len = s.size();
for (i = 0; i < n; ++i) {
for (j = 0; j < len; ++j) {
if ((i >> j) & 1) cout<<s[j];
}
cout<<endl;
全部评论 (0)
还没有任何评论哟~
