文章分类 -  数据结构与算法

回溯法解决n后问题
摘要:回溯法的核心:1、确定问题的解空间子集树问题:装载问题、符号三角形问题、0-1背包问题、最大团问题排列树问题:批处理作业调度、n后问题、旅行售货员问题、圆排列问题、电路板排列问题其他:图的m着色问题2、找出适当的剪枝函数约束函数限界函数3、以深度优先的方式搜索解空间递归回溯迭代回溯n后问题代码: 1 public class Queens { 2 3 public static List<List<Queen>> queens(int n) { 4 return placeQueens(n, n); 5 6 } 7 8 public static ... 阅读全文

posted @ 2013-02-16 11:20 JoshuaZhu 阅读(262) 评论(0) 推荐(0)

骑士走棋盘问题
摘要:骑士走棋盘问题 国际象棋中骑士从棋盘任意位置出发一直将棋盘的每一个位置走一遍这是国际象棋中骑士的可能走法,黑色表示骑士所在位置,红色表示骑士下一步能走的位置骑士走棋盘问题 中 先走最难得位置(下一步可能性最少的位置),然后走容易的位置这样比较容易遍历整个棋盘 1 public class KnightAndBoard { 2 public static class Step { 3 int x, y; // 横坐标 纵坐标 4 5 public Step(int x, int y) { 6 this.x = x; ... 阅读全文

posted @ 2013-01-29 17:59 JoshuaZhu 阅读(295) 评论(0) 推荐(0)

回溯法 --老鼠找迷宫1
摘要:public class Maze1 { public int entrancei = 1;//入口坐标 public int entrancej = 1; public int existi = 5;//出口坐标 public int existj = 5; public int success = 0; public void goMaze1(int maze[][]){ //显示迷宫 for (int i = 0; i < 7; i++) { for (int j = 0; j < ... 阅读全文

posted @ 2013-01-08 20:58 JoshuaZhu 阅读(84) 评论(0) 推荐(0)

哈斯卡三角形
摘要:哈斯卡三角形 计算每一元素的公式 rC0 = 1rCn = rCn-1 * (r - n + 1) / npublic class PascalTriangle { /** * 使用hashmap计算哈斯卡三角形 * 下一行的第i个元素的值等于上一行的第i-1个元素与第i个元素值的和 * @param n */ public void calulateTriangle(int n) { HashMap<Integer, int[]> triangle = new HashMap<Integer, int[]>(); for... 阅读全文

posted @ 2013-01-05 11:34 JoshuaZhu 阅读(78) 评论(0) 推荐(0)

汉诺塔
摘要:经典汉诺塔当有两个盘子的时候整个移动过程就是A->BA->CB->C当有多个盘子的时候,可将n-1个盘子作为整体。整个就相当于一个两个盘子的情况,而对于作为整体看待的n-1个盘子就采用递归。public void Hanoi(int num, String A, String B, String C){ if(num == 1) System.out.println(A + " -> " + C); else{ Hanoi(num - 1,A,C,B); System.out.println(A + ... 阅读全文

posted @ 2013-01-04 21:25 JoshuaZhu 阅读(145) 评论(0) 推荐(0)

导航