冒泡排序BubbleSort

/**
 * 
 * @author Administrator
 * 功能:交换式排序之冒泡排序
 */
package com.test1;

import java.util.Calendar;

public class BubbleSort {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        int[] arr = new int[50000];
        for (int i = 0; i < arr.length; i++) {
            //让程序随机产生一个1 - 10000个数
            //Math.random会产生一个0到1的数
            arr[i] = (int)(Math.random()*50000);
        }
        //int[] arr = { 1, 6, 0, -1, 9, -100, -90 };
        // 排序开始
        // 外层循环,它可以决定一共走几趟

        Bubble bubble = new Bubble();
        //在排序前打印系统时间
        //Calendar是单开模式,在系统里面只有一个,且只需要一个实例,不是new 出来的
        //Java共有23中模式
        Calendar cal = Calendar.getInstance();
        System.out.println("排序前:"+cal.getTime());
        bubble.sort(arr);
        //在排序后打印系统时间
        //因为是单开的,所有首先重新得到实例
        cal = Calendar.getInstance();
        System.out.println("排序后:"+cal.getTime());
//        System.out.println("冒泡结束后结果是:");
//        for (int i = 0; i < arr.length; i++) {
//            System.out.print(arr[i] + " ");
//        }

    }

}

class Bubble {

    // 排序方法
    public void sort(int[] arr) {
        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]) {
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }

        // //简单数据类型会开辟另一个栈,复合类型会改变
        // public void swap(int a, int b)
        // {
        // if(a > b)
        // {
        // int temp = a;
        // a = b;
        // b = temp;
        // }
        // }
    }
}
原文地址:https://www.cnblogs.com/beautiful-code/p/5344370.html