为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

哔哔one 2018-12-07 12:41:46
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; } } }
查看完整描述

4 回答

?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

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);
}
}

我把你的稍微改造了一下!

命名有点不规范,将就着看吧!

查看完整回答
反对 回复 2018-12-16
?
千巷猫影

TA贡献1829条经验 获得超7个赞

看不出来哪里排序了

查看完整回答
反对 回复 2018-12-16
?
LEATH

TA贡献1936条经验 获得超7个赞

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

查看完整回答
反对 回复 2018-12-16
?
慕桂英546537

TA贡献1848条经验 获得超10个赞

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

查看完整回答
反对 回复 2018-12-16
  • 4 回答
  • 0 关注
  • 587 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号