您的位置:首页 > 编程语言 > Java开发

java之字符串的排序

2015-07-14 11:08 417 查看
题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有的字符串abc,acb,bac,bca,cab,cba。

分析:首先,求所有可能出现在第一个位置的字符,即把第一个字符和后面所有的字符交换。

            第二步,固定第一字符,求后面所有字符的排列。这个时候我们仍把后面的所有字符分成两部分:后面字符的第一个字符,以及这个字符之后的所有字符。然后把第一个字符逐个和它后面的字符交换。

java代码:

package Stringchar;

public class PermutationMain {

public static void permutation(char[] str, int i) {
if (i >= str.length)
return;
if (i == str.length - 1) {
System.out.println(String.valueOf(str));
} else {
for (int j = i; j < str.length; j++) {
char temp = str[j];
str[j] = str[i];
str[i] = temp;

permutation(str, i + 1);

temp = str[j];
str[j] = str[i];
str[i] = temp;
}
}

}

public static void main(String[] args) {
String str = "abcd";
permutation(str.toCharArray(), 0);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: