黑马程序员技术交流社区

标题: 关于冒泡排序困惑(新手) [打印本页]

作者: a2068604    时间: 2015-3-27 23:16
标题: 关于冒泡排序困惑(新手)
public static void maopaopaiXu(int[] arr)
                {
                        for(int x=0; x<arr.length-1; x++)
                        {
                                for(int y=0; y<arr.length-x-1; y++)//-x:让每次比较的元素减少。 -1:避免角标越界。
                                {
                                        if(arr[y]>arr[y+1]);
                                        {
       
                                                int temp = arr[y];
                                                arr[y] = arr[y+1];
                                                arr[y+1] = temp;
                                        }
                                }
                        }
                }
        public static void main(String[] args)
        {
                                int[] arr= {5,1,6,4,2,8,9};
                                //排序前:
                                dayin(arr);
                                maopaopaiXu(arr);
                                //排序后:
                                dayin(arr);
        }
}
为什么打印出来的排序只是循序反过来而没有排序。
作者: a2068604    时间: 2015-3-27 23:17
我哪里遗漏什么或者打错了那里。
{5,1,6,4,2,8,9};
打印后↓
{9,8,2,4,6,1,5};
而不是应该从小到大排序吗

作者: liyanghml    时间: 2015-3-27 23:31
    if(arr[y]>arr[y+1]);   哥们儿  你加个分号  嘛意思啊
作者: fantacyleo    时间: 2015-3-27 23:39
      if(arr[y]>arr[y+1]);多了个分号
作者: ym199210    时间: 2015-3-27 23:42
表示看不懂   
作者: a2068604    时间: 2015-3-27 23:44
把       int[] arr= {5,1,6,4,2,8,9};分号去掉也不得
作者: 圣光忏悔    时间: 2015-3-28 00:01
人家说的是你的
  1.   if(arr[y]>arr[y+1]); //这里多了一个分号...
  2.                                         {
  3.       
  4.                                                 int temp = arr[y];
  5.                                                 arr[y] = arr[y+1];
  6.                                                 arr[y+1] = temp;
  7.                                         }
复制代码

作者: hhh233    时间: 2015-3-28 00:10
多了个分号  然后你是按从大到小的顺序排的吧
作者: 陈捷旋    时间: 2015-3-28 00:12
加了分号程序到那就结束了。后面的就没交换了,所以没排序
作者: a2068604    时间: 2015-3-28 00:40
解决了。确实是分号问题
作者: 高光天    时间: 2015-3-28 09:44
我都没注意到有分号
作者: smartisan    时间: 2015-3-28 10:08
恩 我打印出字符来了,看看是怎么回事
作者: DxxD    时间: 2015-3-28 10:14
忧伤的结果。。。。
作者: smartisan    时间: 2015-3-28 10:18
倒入import java.util.Arrays;
打印出来的就是正常的了
看来不能使用System.out.println(arr)
System.out.println(Arrays.toString(arr));
作者: 勇闯☀☀黑马    时间: 2015-3-28 11:31
分号的问题




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2