算法:字符串所有顺序问题

  字符串"abcde"所有可能顺序的问题,利用递归将问题不断分解达到最小化。

  1. a|bcde;
  2. ab|cde;
  3. abc|de;
 1     public void recursionArrange(char[] arrayA,int start,int end){
 2         if(end == 0)
 3             return;
 4         if(start == end){
 5             System.out.println(Arrays.toString(arrayA));
 6         }
 7         else{
 8             for(int i = start;i <= end;i++){
 9                 swap(arrayA,i,start);
10                 recursionArrange(arrayA,start+1,end);
11                 swap(arrayA,i,start);
12             }
13         }
14 
15     }
16     //交换数组m位置和n位置上的值
17     public void swap(char[] arrayA,int m,int n){
18         char temp = arrayA[m];
19         arrayA[m] = arrayA[n];
20         arrayA[n] = temp;
21     }
22 
23     public void test01() {
24         recursionArrange("abcd".toCharArray(),0,3);
25     }

 

posted @ 2022-01-19 15:58  厄舍屋下  阅读(43)  评论(0)    收藏  举报