猿问

这是一个字符串全排序的算法 能讲一下这个方法的意思吗

public static void confusion(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;

confusion(str, i + 1);

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

}

哔哔one
浏览 588回答 4
4回答

幕布斯6054654

public static void confusion(char[] str){ char temp =0; for (int i = 0; i < str.length; i++) { for (int j = i; j < str.length; j++) { int a = str[i]; int b = str[j]; if(str[i]>str[j]){ temp=str[j]; str[j]=str[i]; str[i]=temp; } } String car=""; for (int k = 0; k < str.length; k++) { car+=String.valueOf(str[k]); } System.out.println("car-----------"+car); } } 我把你的稍微改造了一下! 命名有点不规范,将就着看吧!

千巷猫影

看不出来哪里排序了

LEATH

递归调用么。。。,在循环中改变字符的顺序,然后输出。。。

慕桂英546537

我懂,但是请您仔细看看这个递归,他中间把排完序的字符又恢复了顺序  然后变换第一个的位置,重新排序  依次类推。我不知道其中的奥秘
随时随地看视频慕课网APP

相关分类

Java
我要回答