美文网首页
Java冒泡排序

Java冒泡排序

作者: 简书mhy | 来源:发表于2018-11-15 10:46 被阅读0次

    int[] arr = {5,3,2,7,9,6};

         冒泡排序法:
         第一次外循环,内循环中,5需要分别和后边的 5 个数进行比较             比较5次       
         第二次外循环,内循环中,3需要分别和后边的 4个数进行比较              比较4次
         (第一次外循环5和3已经比较过了,所有不需要再次比较,只需要比较后边的几个就可以了)
         第三次外循环,内循环中,2需要分别和后边的3个数进行比较
         ......  
          第五次外循环,内循环中,9只需要和6进行比较即可,到此结束           比较1次
         
         结论: 外循环:arr.length-1
             内循环:arr.length-1-i
    
    public static void main(String[] args) {
            int x = 0 ;
            int[] arr = {5,3,2,7,9,6};
            /**
             * 冒泡排序法:
             * 第一次外循环,内循环中,5需要分别和后边的 5 个数进行比较             比较5次       
             * 第二次外循环,内循环中,3需要分别和后边的 4个数进行比较              比较4次
             * (第一次外循环5和3已经比较过了,所有不需要再次比较,只需要比较后边的几个就可以了)
             * 第三次外循环,内循环中,2需要分别和后边的3个数进行比较
             * ......  
             * 第五次外循环,内循环中,9只需要和6进行比较即可,到此结束           比较1次
             * 
             *结论: 外循环:arr.length-1
             *    内循环:arr.length-1-i
             */
            for (int i = 0; i < arr.length-1; i++) {   //外循环   控制排序趟数
                for (int j = 0; j < arr.length-1-i; j++) {  //内循环   控制每一趟排序多少次
                    if(arr[j] > arr[j+1]){
                        change(arr, j, j+1);
                    }
                    x++;
                }
            }
            System.out.println("次数"+x);
            for (int i = 0; i < arr.length; i++) {
                System.out.println(arr[i]);
            }
        }
        /**
         * <p>功能描述:交换数组位置</p>
         * <p>方法名:change</p>
         * <p>@param arr 数组
         * <p>@param i交换的两个索引
         * <p>@param j
         */
        public static void change(int[] arr,int i,int j){
            int temp;
            temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
        }
    

    相关文章

      网友评论

          本文标题:Java冒泡排序

          本文链接:https://www.haomeiwen.com/subject/lawefqtx.html