/** * * @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; // } // } } }
时间: 2024-10-01 05:58:01