黑马程序员技术交流社区

标题: 冒泡排序的问题 [打印本页]

作者: JYcainiao    时间: 2015-10-8 22:55
标题: 冒泡排序的问题
本帖最后由 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);        //打印排序后的数组
        }
}
/*


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

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

*/

作者: cuijinghao    时间: 2015-10-8 23:04
拒绝粗心,关爱身心健康
作者: 孔曰承让    时间: 2015-10-8 23:55
细心是首要
作者: Rzzz    时间: 2015-10-9 00:07
冒泡排序比较的是相邻的两个数,你第一次取出的数是外层的循环的数.你比较的话就从第二个数开始取数比较..
作者: wokua    时间: 2015-10-9 01:12
我粗心也出过好多次错了
作者: 学不死往死学    时间: 2015-10-9 07:18
给力哦.赞
作者: YaYa    时间: 2015-10-9 09:38
我懒得记冒泡  - -    选择比较好记
作者: LLLLL    时间: 2015-10-9 21:15
  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;
                                 }
                         }        
                 }




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