超经典的笔试题 冒泡排序

package com.carlinfo.array;

/**

 * 冒泡排序

 * ~定义一个无序的整数数组;循环打印

 * ~排序

 *    每两个比一次

 *    交换:必须找第三个坑

 * ~重构:将重复的代码封装成一个方法

 * @author WangshMac

 */

public class SortMain

{

   public static void main(String[] args)

   {

      int[] arr1 = {20,10,15,30} ;

      /* [I@7852e922 */

      System.out.println("=arr1:toString==>" + arr1);

      /* 调用方法 */

      SortMain.loop(arr1);

      /* 排序

       * 每一个坑都要和所有的坑比一遍

       *

       * 第一行: 1

       * 第二行: 2

       * 第三行: 3

       *  */

      for(int i = 0 ; i < arr1.length ; i ++)

      {

         for(int j = i + 1 ; j < arr1.length ; j ++)

         {

            //System.out.println(i + "=="+ j +"==>排序==>" + arr1[i] + "--->" + arr1[j]);

            //System.out.print("*");

            /* 第一个坑和第二个坑 */

            if(arr1[i] < arr1[j])

            {

               /* temp和arr1[i]相等*/

               int temp = arr1[i] ;

               /* 放心把i的值给覆盖掉 */

               arr1[i] = arr1[j] ;

               /* 放心把j的值给覆盖掉 */

               arr1[j] = temp ;

            }

         }

         //System.out.println();

      }

      System.out.println("=====");

      /* 调用方法 */

      SortMain.loop(arr1);

   }

  

   /**

    * 参数怎么可能是数组呢?

    * @param arr1

    */

   public static void loop(int[] arr1)

   {

      /* 循环数组 */

      for(int i = 0 ; i < arr1.length ; i ++)

      {

         System.out.println(i + "==循环==>" + arr1[i]);

      }

   }

}

猜你喜欢

转载自blog.csdn.net/qq_43736124/article/details/84280510