已实现功能:输入任意长度的字符串,转化为char型数组需实现功能:把char型数组中的字符排序输出例:输入abc,排序后需要输出abc,acb,bac,cab,bca,cba意思就是在char型数组中储存着abcacbb...
已实现功能:输入任意长度的字符串,转化为char型数组
需实现功能:把char型数组中的字符排序输出
例:输入abc,排序后需要输出abc,acb,bac,cab,bca,cba
意思就是在char型数组中储存着abcacbbaccabbcacba,18个字符,下标0-17被初始化,,,就是一个堆栈不出栈的问题.
方法原形:public void pernute(char[] str, int pos, int length);
char型数组str,位置变量pos,长度变量length.
class Test {
public void pernute(String str) {
char a[] = str.toCharArray();
int f = 1, count= 1;
for(; f <= a.length; f++) {
count = f * count;//count储存需要排序次数
}
char b[] = new char[count * a.length];//定义数组长度:排序次数乘以输入的字符个数
for(int k = 0; k < a.length; k++) {
b[k] = a[k];//把a中值初始化到b中,因为a的长度等于输入的字符个数
}
pernute(b, 0, a.length);
int i = 0;
for(int j = 0; j < count; j++){
for(; i < a.length; i++) {
System.out.print(b[i]);
}
System.out.println("");
}//此FOR嵌套输出排序后的字符,一次一换行
}
public void pernute(char[] str, int pos, int length) {
//此处使用递归方法排序并填充数组
}
public static void main(String args[]) {
String temp = args[0];
new Test().pernute(temp);
}
}
抱歉
原题要求用多态去实现...
我也没辙啊...
想不出递归调用的掉转规律
还请大家帮忙
展开