码迷,mamicode.com
首页 > 其他好文 > 详细

字符串的全排列

时间:2016-09-21 15:54:12      阅读:96      评论:0      收藏:0      [点我收藏+]

标签:

 1 import org.junit.Test;
 2 
 3 public class AllSort {
 4 
 5     public void permutation(char[] buf, int start, int end) {
 6         if (start == end) {// 当只要求对数组中一个字母进行全排列时,只要就按该数组输出即可
 7             for (int i = 0; i <= end; i++) {
 8                 System.out.print(buf[i]);
 9             }
10             System.out.println();
11         } else {// 多个字母全排列
12             for (int i = start; i <= end; i++) {
13                 char temp = buf[start];// 交换数组第一个元素与后续的元素
14                 buf[start] = buf[i];
15                 buf[i] = temp;
16 
17                 permutation(buf, start + 1, end);// 后续元素递归全排列
18 
19                 temp = buf[start];// 将交换后的数组还原
20                 buf[start] = buf[i];
21                 buf[i] = temp;
22             }
23         }
24     }
25 
26     @Test
27     public void testPermutation() throws Exception {
28         char[] buf = new char[] { ‘a‘, ‘b‘, ‘c‘ };
29         permutation(buf, 0, 2);
30     }
31 }

 

字符串的全排列

标签:

原文地址:http://www.cnblogs.com/jiangyi-uestc/p/5892820.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!