1 包装类Java为8个基本数据类型boolean、byte、char、int、short、long、float、double,提供了8个包装类Boolean、Byte、Character、Integer、Short、Long、Float、Double。并提供了自动装箱和自动拆箱,允许把基本类型值直...
分类:
其他好文 时间:
2014-07-16 23:09:59
阅读次数:
174
(一)八皇后问题
(1)回溯法
#include
#include
#define MAXN 100
using namespace std;
int tot = 0, n = 8;
int C[MAXN];
void search(int cur) {
if(cur == n) ++tot; //递归边界,只要走到了这里,所有皇后必然不冲突
else for(in...
分类:
其他好文 时间:
2014-07-05 11:09:52
阅读次数:
356
学习要点: 1、分支限界法与回溯法 2、分支限界法的剪枝搜索策略 3、分支限界法的算法框架: (1)队列式(FIFO)分支限界法 (2)优先队列式分支限界法 4、应用范例: (1)单源最短路径问题 (2)装置问题 (3)布线问题 (4)0-1背包问题 ...
分类:
其他好文 时间:
2014-07-03 19:32:51
阅读次数:
173
(一)生成1~n的排列
分析:用递归的思想解决:先输出所有以1开头的排列(这一步是递归调用),然后输出以2开头的排列(又是递归调用),接着是以3开头的排列......最后才是以n开头的排列。
伪代码:
void print_permutation(序列A, 集合S) {
if(S为空) 输出序列A;
else 按照从小到大的顺序依次考虑S的每个元素v {
print_permutati...
分类:
其他好文 时间:
2014-07-03 15:52:07
阅读次数:
216
题目
Follow up for N-Queens problem.
Now, instead outputting board configurations, return the total number of distinct solutions.
方法
和上题方法一样,使用回溯法,结构基本相同,只需要返回数量。
public i...
分类:
其他好文 时间:
2014-06-30 06:24:22
阅读次数:
273
1、回溯法用一维数组记录皇后的位置。数组的下标代表皇后所处的行,下标对应的值代表皇后所处的列。用count记录皇后的个数,当count小于queen数时,在循环体中寻找合适位置的queen。寻找queen:从列1依次寻找,满足条件则count+1,继续从列1处寻找下一个queen。如全部找完没找到合...
分类:
其他好文 时间:
2014-06-26 16:17:30
阅读次数:
183
当所给问题是从n个元素的集合S中找出满足某种性质的子集时,解空间为子集树。例如:0-1背包问题当所给问题是从n个元素的集合S中找出满足某种性质的排列时,解空间为排列树。例如:旅行售货员问题回溯法搜索子集树算法描述为:void backtrack(int t){ if(t>n) output...
分类:
其他好文 时间:
2014-06-24 21:47:06
阅读次数:
221
转载请注明出处:http://blog.csdn.net/ns_code/article/details/26614999 剑指offer上解决八皇后问题,没实用传统的递归或非递归回溯法,而是用了非常巧妙的全排列法。 先说下八皇后问题:在8 X 8的国际象棋上摆放八个皇后,使其不能相互攻击,即随.....
分类:
其他好文 时间:
2014-06-22 23:52:46
阅读次数:
398
回溯法是设计递归的一种常用方法,它的求解过程实质上就是一个先序遍历一棵"状态树"的过程,只是这棵树不是遍历前预先建立的而是隐含在遍历过程中的。下面举一个例子:求含n个元素的集的幂集:集合A={ {1,2,3}, {1,2}, {1,3}, {1}, {2,3},{2},{3},{}}; /...
分类:
其他好文 时间:
2014-06-17 00:49:01
阅读次数:
302