/**
*
* @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;
// }
// }
}
}