python 九宫重排_算法:数字推盘游戏--重排九宫(8-puzzle)

1 packagealgorithm;2

3 importjava.util.Comparator;4 importjava.util.PriorityQueue;5

6 /**

7 * 重排九宫,或者称之为八码数问题,或是说数字推盘问题4,使用分支界定法实现8 */

9 public classEightPuzzle {10 //方阵边长

11 private static final int N = 3;12

13 //坐标的行列索引向下、左、上、右

14 private static final int[] row = {1, 0, -1, 0};15 private static final int[] col = {0, -1, 0, 1};16

17 /**

18 * 节点19 */

20 private classNode {21 privateNode parent;22 private int[][] mat;23 private intx, y;24 private intcost;25 private intlevel;26 privateNode() {27 mat = new int[N][N];28 }29 }30

31 /**

32 * 用于堆排序的比较对象33 */

34 class Comp implements Comparator{35 @Override36 public intcompare(Node o1, Node o2) {37 return (o1.cost + o1.level) - (o2.cost +o2.level);38 }39 }40

41 /**

42 * 打印矩阵43 *44 *@parammat45 */

46 private void pri

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值