黑马程序员技术交流社区
标题:
学完今天的课程写的!请多指教!
[打印本页]
作者:
小沈同学
时间:
2015-7-1 21:03
标题:
学完今天的课程写的!请多指教!
本帖最后由 小沈同学 于 2015-7-1 21:05 编辑
/* 这个程序的功能是:在控制台输入一串字母,通过方法可以自动把输入的字符串从小到大排列好并打印出来。
*/
import java.util.Scanner;//导包
public class Strings {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("请输入一串字母:");
String s1 = s.nextLine();//用变量S1记录用户输入的字母
char[] arr = s1.toCharArray();//调用方法把字符串拆分成字符
Strings(arr);//调用方法把拆分的字符从小到大排列
System.out.println("从小到大排序为:"+String.valueOf(arr));//调用方法把拆分的字符重新组成字符串并打印出来!
}
public static void Strings(char[] arr){//这个方法用来把字符数组从小到大排列
for (int x = 0; x < arr.length-1; x++) {//外循环根据数组长度决定循环次数,因为第一次遍历就把最后索引确定,所以-1.
for (int y = 0; y < arr.length-1-x; y++) {//内循环把数组从索引0开始跟后一索引对比,-1因最后索引不用对比。
if (arr[y]>arr[y+1]) {//判断若前一索引如果比后一索引大就定义一个第三方变量,把前后两者对调。
char temp = arr[y];
arr[y] = arr[y+1];
arr[y+1] = temp;
}
}
}
}
}
复制代码
学完今天的课程写的!请多指教!
这个程序的功能是:在控制台输入一串字母,通过方法可以自动把输入的字符串从小到大排列好并打印出来。
作者:
453203489
时间:
2015-7-2 03:38
这个排序算法我觉得有2点不是很好。
作者:
453203489
时间:
2015-7-2 03:41
首先是在算法上, 你的排序算法应该是老师讲冒泡之后做的吧, 内层循环取多了。
然后是在实现上, 个人觉得 Strings 方法的主要功能是检查相邻的是否需要交换, 而交换这一操作应该交给另一个方法去做。
一点小小的建议。
作者:
小沈同学
时间:
2015-7-4 22:41
453203489 发表于 2015-7-2 03:41
首先是在算法上, 你的排序算法应该是老师讲冒泡之后做的吧, 内层循环取多了。
然后是在实现上, 个人觉得 ...
那请问内层循环怎样取才合理?这个是老师讲完后做的小测试,呵呵所以就没定义另外的方法了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2