A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小沈同学 于 2015-7-1 21:05 编辑
  1. /*  这个程序的功能是:在控制台输入一串字母,通过方法可以自动把输入的字符串从小到大排列好并打印出来。
  2. */
  3. import java.util.Scanner;//导包
  4. public class Strings {
  5.         public static void main(String[] args) {
  6.                 Scanner s = new Scanner(System.in);
  7.                 System.out.println("请输入一串字母:");
  8.                 String s1 = s.nextLine();//用变量S1记录用户输入的字母
  9.                 char[] arr = s1.toCharArray();//调用方法把字符串拆分成字符
  10.                 Strings(arr);//调用方法把拆分的字符从小到大排列
  11.                 System.out.println("从小到大排序为:"+String.valueOf(arr));//调用方法把拆分的字符重新组成字符串并打印出来!
  12.         }
  13.         public static void Strings(char[] arr){//这个方法用来把字符数组从小到大排列
  14.                 for (int x = 0; x < arr.length-1; x++) {//外循环根据数组长度决定循环次数,因为第一次遍历就把最后索引确定,所以-1.
  15.                         for (int y = 0; y < arr.length-1-x; y++) {//内循环把数组从索引0开始跟后一索引对比,-1因最后索引不用对比。
  16.                                 if (arr[y]>arr[y+1]) {//判断若前一索引如果比后一索引大就定义一个第三方变量,把前后两者对调。
  17.                                         char temp = arr[y];
  18.                                         arr[y] = arr[y+1];
  19.                                         arr[y+1] = temp;
  20.                                 }
  21.                         }
  22.                 }
  23.         }
  24. }
复制代码
学完今天的课程写的!请多指教!这个程序的功能是:在控制台输入一串字母,通过方法可以自动把输入的字符串从小到大排列好并打印出来。

评分

参与人数 1黑马币 +4 收起 理由
杨小楠 + 4 淡定

查看全部评分

3 个回复

倒序浏览
这个排序算法我觉得有2点不是很好。
回复 使用道具 举报
首先是在算法上, 你的排序算法应该是老师讲冒泡之后做的吧, 内层循环取多了。
然后是在实现上, 个人觉得 Strings 方法的主要功能是检查相邻的是否需要交换, 而交换这一操作应该交给另一个方法去做。

一点小小的建议。
回复 使用道具 举报
453203489 发表于 2015-7-2 03:41
首先是在算法上, 你的排序算法应该是老师讲冒泡之后做的吧, 内层循环取多了。
然后是在实现上, 个人觉得 ...

那请问内层循环怎样取才合理?这个是老师讲完后做的小测试,呵呵所以就没定义另外的方法了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马