标签:转移 详细 控制 循环控制 选择 i++ 方法 十进制 void
字符串本质就是字符数组,所以对字符串的排序也就是对字符数组的排序(有选择排序、冒泡排序、快速排序等常用算法);
例题加详细的注释:
@Test
public void Sorting(){
String str = "dkgkfjg";
//1、字符串转换成字符串数组
char[] ch = str.toCharArray();
//2、对数组进行排序
//方式一:调用静态方法Arrays.sort()
//Arrays.sort(ch);
/*方式二:冒泡排序:
* */
//外层循环:控制要交换的轮数,最多要交换length-1次
for (int j = 0; j < ch.length-1; j++) {
//创建一个开关,且每次循环开始都打开开关
boolean loopFlag = true;
//内层循环:对前后两个数进行比较、交换
for (int i = 0; i < ch.length - 1 - i; i++) {//-i是已经交换了的元素
if(ch[i] > ch[i+1]){//这样比较的时其对应的十进制ASCII码,对应的字母位越小,十进制数越大,所以反着来
char c = ch[i];
ch[i] = ch[i+1];
ch[i+1] = c;
//只要本层循环发生过交换,说明还没有比较完,关闭开关
loopFlag = false;
}
//如全部比较完成,无需等待循环条件满足再跳出外层循环,提高了运行效率
if(loopFlag){
break;
}
}
}
//3、将排序后的数组转换成字符串
String strSort = String.valueOf(ch);
System.out.println("转换后的数组:"+strSort);
}
对字符串中字符进行自然顺序排序(基本类型排序)-冒泡算法实现
标签:转移 详细 控制 循环控制 选择 i++ 方法 十进制 void
原文地址:https://www.cnblogs.com/csyh/p/12273757.html