Java实现N个字母的全排列

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 i = 0; i <= end; i++) {
                System.out.print(buf[i]);
            }
            System.out.println();
        } else {// 多个字母全排列
            for (int i = start; i <= 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;
            }
        }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 俗话说:“物以类聚,人以群分”。一个人的性格爱好,看他的圈子,便可一目了然。你有牌友,你就一定喜爱搓麻;有球友,就...
    觉悟道阅读 1,345评论 0 0
  • 双方撕破脸皮,对簿公堂后,你是否不想看到对方,因为会勾起你对痛苦往事的回忆。 你是否因为工作原因,没有...
    d8cff2f6d565阅读 2,944评论 0 0
  • 文|沐言Aimee 女孩大学毕业后一直在北京闯荡,每个有梦想的青年,都会在最美好的青春在自己最想要待的城市,带着自...
    平头姐阅读 2,578评论 0 0
  • 你的夏令营 妈妈开始追剧 这次演的蜀深港三地大挑战 精彩精彩 营地尽然还能培养影帝 意料不到的惊喜 看你们笑的停不...
    春芸1216阅读 1,748评论 2 5
  • y.qq.com/n/yqq/song/000OKU824Ho3fM.html 沙漠海 演唱:张宇 从来不曾看你...
    敢说真话的妖精阅读 2,087评论 1 1