加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Java实现N个字母的全排列

(2013-10-17 18:29:08)
标签:

java

全排列

实现

it

分类: 算法

 

public class AllSort {

    public static void main(String[] args) {

        char buf[] 'a''b''c''d' };

 

        perm(buf, 0, buf.length 1);

    }

 

    public static void perm(char[] buf, int start, int end) {

        if (start == end) {// 当只要求对数组中一个字母进行全排列时,只要就按该数组输出即可

            for (int 0; <= end; i++) {

                System.out.print(buf[i]);

            }

            System.out.println();

        else {// 多个字母全排列

            for (int start; <= end; i++) {

                char temp buf[start];// 交换数组第一个元素与后续的元素

                buf[start] buf[i];

                buf[i] temp;

 

                perm(buf, start 1, end);// 后续元素递归全排列

 

                temp buf[start];// 将交换后的数组还原

                buf[start] buf[i];

                buf[i] temp;

            }

        }

    }

}

 

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有