l903445981的博客

你一定要有上进心

全排列的两种写法

1.递归

public static void permutation1(String str ,String result ,int len){

    /* 全排列 递归实现

            递归树:

      str:          a            b                c

                  ab ac         ba   bc         ca   cb

    result:        abc acb        bac    bca      cab   cba

     */

    

      //结果 开始传入""   空字符进入   len   是这个数的长度

      if(result.length()==len){            //表示遍历完了一个全排列结果

       System.out.println(result);

      }

      else{

          for(int i=0;i<str.length();i++){

                 //返回指定字符在此字符串中第一次出现处的索引。

 if(result.indexOf(str.charAt(i))<0){

   System.out.println("字母:"+str.charAt(i));

                 permutation1(str, result+str.charAt(i), len);

              }

          }

      }

}

 

public static void main(String args[]) throws Exception {

     String s = "abc";

     String result = "";

     permutation1(s, result, s.length());

}


2.非递归




阅读更多
文章标签: java
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

全排列的两种写法

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭