傻瓜方法求集合的所有子集问题(java版)

给定任意长度的一个集合,用一个数组表示,如{"a", "b","c"},求它的所有子集。结果是{ {a}, {b}, {c}, {a,b}, {a,c}, {b,c}, {a,b,c}}和一个空集。     下面讲的就是如何用一个原始的傻瓜方法(非算法)求它的所有子集。     首先我们知道是它的子集个数是2^length,如果长度是3,那子集就共有2的3次方=8个,包括空集。     求子...
阅读(1184) 评论(0)

回溯算法解迷宫问题(java版)

以一个M×N的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计程序,对任意设定的迷宫,求出从入口到出口的所有通路。     下面我们来详细讲一下迷宫问题的回溯算法。     该图是一个迷宫的图。1代表是墙不能走,0是可以走的路线。只能往上下左右走,直到从左上角到右下角出口。     做法是用一个二维数组来定义迷宫的初始状态,然后从左上角开始,不停的去试探所有可行的路线,碰到1就结束本次...
阅读(2728) 评论(1)

回溯算法解八皇后问题(java版)

八皇后问题是学习回溯算法时不得不提的一个问题,用回溯算法解决该问题逻辑比较简单。     下面用java版的回溯算法来解决八皇后问题。     八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。      思路...
阅读(2451) 评论(2)

回溯算法解数独问题(java版)

下面来详细讲一下如何用回溯算法来解数独问题。     下图是一个数独题,也是号称世界上最难的数独。当然了,对于计算机程序来说,只要算法是对的,难不难就不知道了,反正计算机又不累。回溯算法基本上就是穷举,解这种数独类的问题逻辑比较简单。 不管算法懂不懂,先把类建出来,变量定义好,那放大学试卷上就是可以拿两分了。 package shudu; /** * Created by w...
阅读(3268) 评论(1)
    个人资料
    • 访问:96851次
    • 积分:1515
    • 等级:
    • 排名:千里之外
    • 原创:58篇
    • 转载:19篇
    • 译文:0篇
    • 评论:19条
    博客专栏