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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© JYcainiao 中级黑马   /  2015-10-8 22:55  /  804 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 JYcainiao 于 2015-10-8 22:59 编辑

// 定义一个函数 用来实现数组的冒泡排序  从小到大

class paixuArr
{
        public static void maopaoArr(int[] arr)
        {
                for (int x=0; x<arr.length; x++)
                {
                        for (int y=1; y<arr.length-x-1; y++) //好脑残啊  这里y怎么会等于1呢,应该是从0开始啊  郁闷死了
                        {                                
                                if (arr[y]>arr[y+1])
                                {
                                        int temp= arr[y];
                                        arr[y]=arr[y+1];
                                        arr[y+1]=temp;
                                }
                        }        
                }
        }
        
        public static void bianliArr(int[] arr)
        {
                System.out.print("[");
                for (int x=0;x<arr.length ;x++ )
                {
                        if (x<arr.length-1)
                                System.out.print(arr[x]+",");
                        else
                                System.out.print(arr[x]);

                }
                System.out.print("]");
        
        }
        
        public static void main(String[] args)
        {
               
                int[] arr=new int[]{8,9,7,5,4,8,9,10};
                //
                bianliArr(arr);        //打印一遍  原数组
                maopaoArr(arr); //进行冒泡排序
                bianliArr(arr);        //打印排序后的数组
        }
}
/*


大神帮我看下有哪一点错了   郁闷死了

问题已经找到   都是粗心犯的错啊

*/

7 个回复

倒序浏览
拒绝粗心,关爱身心健康
回复 使用道具 举报
细心是首要
回复 使用道具 举报
冒泡排序比较的是相邻的两个数,你第一次取出的数是外层的循环的数.你比较的话就从第二个数开始取数比较..
回复 使用道具 举报
我粗心也出过好多次错了
回复 使用道具 举报
给力哦.赞
回复 使用道具 举报
YaYa 高级黑马 2015-10-9 09:38:50
7#
我懒得记冒泡  - -    选择比较好记
回复 使用道具 举报
LLLLL 中级黑马 2015-10-9 21:15:32
8#
  for (int x=0; x<arr.length-1; x++)       //这里也应该在-1.减少最后一个元素跟自己在进行比较
                 {
                         for (int y=1; y<arr.length-x-1; y++)
                         {                                
                                 if (arr[y]>arr[y+1])
                                 {
                                         int temp= arr[y];
                                         arr[y]=arr[y+1];
                                         arr[y+1]=temp;
                                 }
                         }        
                 }
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马