黑马程序员技术交流社区

标题: 帮我看看这两个冒泡排序为什么结果不同 [打印本页]

作者: 老徐    时间: 2015-6-4 22:24
标题: 帮我看看这两个冒泡排序为什么结果不同
本帖最后由 老徐 于 2015-6-4 22:31 编辑



数组是 int[] arr={1,2,4,5,56,7,8,9,2,3};
用for循环体的结果是1 2 2 3 4 5 7 8 9 56
用注释掉的while写的,就是1 2 4 5 7 8 9 2 3 56


作者: 杜黎明    时间: 2015-6-4 22:58
int i=0;
                while(i<s.length)
                {
                        int j=0;
                        while(j<s.length-i-1)
                        {
                                if(s[j]>s[j+1])
                                {
                                        int m=s[j];
                                        s[j]=s[j+1];
                                        s[j+1]=m;
                                }
                                j++;
                        }
                        i++;
                }
                System.out.println(Arrays.toString(s));

int [] s={9,0,6,7,8,1,2,5,3,4,10};

  int j=0放错位子了;应该定义在第一个while内,才和上面的代码一样
作者: 老徐    时间: 2015-6-4 23:11
本帖最后由 老徐 于 2015-6-4 23:14 编辑

额,知道了。。。 感谢!

作者: lizhi    时间: 2015-6-4 23:15
老徐 发表于 2015-6-4 22:24
数组是 int[] arr={1,2,4,5,56,7,8,9,2,3};
用for循环体的结果是1 2 2 3 4 5 7 8 9 56
用注释掉的while写 ...

变量j放错位置了
作者: 灞波儿奔    时间: 2015-6-4 23:26
j 放错位置了
作者: MissMr.    时间: 2015-6-4 23:42
受教了,
作者: MissMr.    时间: 2015-6-4 23:43
不喜欢用while语句,
作者: hnyzhlq    时间: 2015-6-5 18:14
同学习,看了半天才看出问题




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