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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© haitianzhilian 中级黑马   /  2014-3-14 22:32  /  965 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 haitianzhilian 于 2014-3-14 23:01 编辑

class Demo
{
         public static void main(String[] args)
         {        
         int[] arr={10,11,6,7,5,9,0};
         System.out.print("数组排序前为:");
         PrintArray(arr);
     BubbleSort(arr);//调用已经定义好的冒泡排序函数
         System.out.print("数组排序后为:");
         PrintArray(arr);
         }
         //定义一个冒泡排序函数BubbleSort
         public static void BubbleSort(int[] arr)
         {
                 for(int i=0;i<arr.length-1;i++)
                         for(int j=arr.length-1;j<i;j--)
                             if(arr[j]<arr[j-1])
                                         {
                                         int temp=arr[j];
                                         arr[j]=arr[j-1];
                                         arr[j-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.println(arr+"]");
                                 }
         }
}

捕获.PNG (2.34 KB, 下载次数: 11)

捕获.PNG

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

2 个回复

倒序浏览
for(int i=0;i<arr.length-1;i++)
       for(int j=arr.length-1;j<i;j--)
双层循环的内层循环的终止判断条件应该是j>i, 不是j<i,没有满足j<i条件的j值吧,循环体一次都没执行.
这个是从数组后面向前冒泡,每次循环后,数组前面都是有序的。
改成j>i, 运行结果就正常的,运行结果是:数组排序前为:[10,11,6,7,5,9,0]
                                                        数组排序后为:[0,5,6,7,9,10,11]

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报 1 0

谢谢了,一下明白了,在机器上看那么久就是没看出来啊,真够晕的!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马