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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 布鲁Go 于 2013-11-30 19:11 编辑

阴差阳错,我把冒泡排序的第二重嵌套给注释了!//for (int j=0;j<arr.length-j-1 ;j++ ),然后发现,一样可以排序成功。。。比如下面的打印结果为
无法理解。。 有疑问的也可以试一下,不知道有没有谁能解答下。。。
——————————————————————————————————————————————————————————————
class  bSort
{
        public static void main(String[] args)
        {
                int arr[]={1,4,5,7,9,4,99,515,5,12};
                printArray(arr);
                bubbleSort(arr);
                printArray(arr);
        }

        public static void bubbleSort(int[] arr)
        {
                for (int i=0;i<arr.length-1 ;i++ )
                {
                        //for (int j=0;j<arr.length-j-1 ;j++ )
                        if(arr>arr[i+1])
                        {
                                int temp=arr;
                                arr=arr[i+1];
                                arr[i+1]=temp;
                        }
                }
        }
        public static void printArray(int[] arr)
        {
                System.out.print("[");
                        for (int i=0;i<arr.length ;i++ )
                        {
                                if (i!=arr.length-1)
                                        System.out.print(arr+",");
                                else
                                        System.out.print(arr+"]");
                                       
                        }
                System.out.println();
        }
}

评分

参与人数 1技术分 +1 黑马币 +6 收起 理由
枫儿 + 1 + 6 神马都是浮云

查看全部评分

9 个回复

倒序浏览
没成功啊  只是将最后三个排序成功了
回复 使用道具 举报
Sasson 发表于 2013-11-30 19:05
没成功啊  只是将最后三个排序成功了

难道是我的jdk有问题?我的是1.7的。。不会是新特性吧。。。我试了好几遍。。都晕了。。一直想不明白。
回复 使用道具 举报
Sasson 发表于 2013-11-30 19:05
没成功啊  只是将最后三个排序成功了

哦,,是我看花眼了。。。晕倒。。。我之前的例子可能刚好是两个重合。。就重新写了个冒泡排序。。。然后还是看花眼了。。。。。啊。。打的太久有点晕了。。傻了。。。晕。。。害我想了老久。。。。我错了。。。。话说这个要怎么删除。。。丢人啊。。。o(╯□╰)o。。白想了那么久。。。。
回复 使用道具 举报
没有排序成功·····
原顺序
1,4,5,7,9,4,99,515,5,12
你就把里面的循环注释了  
那么只有一次循环,第一次1和4比较,不换位; 第二次4和5比较,不换位; 第三次5和7比较,不换位;
第四次7和9比较,不换位; 第五次9和4比较,换位;第六次换位后又的9和99比较,不换位; 第七次99和515比较,不换位; 第八次515和5比较,换位; 第九次换位后的515和12比较,换位;
所以输出顺序为
1,4,5,7,4,9,99,5,12,515
回复 使用道具 举报
没事
不要一直用脑  累了就去呼吸呼吸新鲜空气

话说你要是想进28期的话有点紧张
加油了
回复 使用道具 举报
Sasson 发表于 2013-11-30 19:20
没事
不要一直用脑  累了就去呼吸呼吸新鲜空气

恩,谢谢了。  是有点晕了。。。没事,28不行就进29吧。。。。基础打好最重要。。。话说这里的氛围真好。。。满满的学习动力啊。哈哈。
回复 使用道具 举报
满满的都是正能量
回复 使用道具 举报
  1. if(arr>arr[i+1])
  2.    {
  3.              int temp=arr;
  4.               arr=arr[i+1];
  5.               arr[i+1]=temp;
  6. }
复制代码

这是错误的语句,可能你的软件有问题,重启一下工具,eclipse和myeclipse会出现这样的问题
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马