/**

 * @author Administrator

 * 冒泡排序的算法

 * 比较n轮,每一轮都把最大元素移动到数组后端

 */

public class Maopaosort {

    private static int count = 0;

 

    public static void Sort(int[] a) {

       int temp = 0;

       int i = 0, j = 0;

       for (i = 1; i < a.length; i++) {

           //找到最大值

           for (j = 0; j < a.length - i; j++) {

 

              if (a[j] > a[j + 1]) { // 这里的“>”号决定了最后是升序,“<”则是降序

                  temp = a[j + 1];// temp仅做暂存单元

                  a[j + 1] = a[j];

                  a[j] = temp;

              }

 

           }

           printAll(a);

       }

       printAll(a);// 打印结果

 

    }

 

    public static void printAll(int[] a) {

       System.out.println("第" + (++count) + "次:");

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

 

           System.out.print(a[i] + " ");

       }

       System.out.println();

    }

 

    public static void main(String[] args) {

       // 定义一个整型的数组

       int Data[] = new int[10];

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

 

           Data[i] = (int) (Math.random() * 100);// 取得的数据在0到100之间不包括0

 

       }

       System.out.println("排序之前:");

       for (int i : Data) {

           System.out.print(i + " ");

       }

       System.out.println();

       System.out.println("排序之后:");

       Sort(Data);

 

    }

 

}

posted on 2011-03-10 21:48  魔战  阅读(164)  评论(0编辑  收藏  举报