Java实现冒泡排序、插入排序和选择排序

/**	冒泡排序、插入排序和选择排序的Java实现
 * 	Bubble Sort, Insertion Sort and Selection Sort using Java
 * 	by puladiao
 * 	http://blog.verypod.com
 */
import java.util.Random;

class ArrayBub {
	private int[] a;
	
	public ArrayBub(int num){
		a=new int[num];
		Random r=new Random();
		for (int i=0;i<a.length;i++){
			a[i]=r.nextInt(num);
		}
	}
	//冒泡排序
	public void bubbleSort() {
		int temp;
		for (int i = 0; i < a.length - 1; i++) {
			for (int j = 0; j < a.length - i - 1; j++) {
				if (a[j] > a[j + 1]) {
					temp = a[j + 1];
					a[j + 1] = a[j];
					a[j] = temp;
				}
			}
		}
	}
	//选择排序
	public void selectSort() {
		int temp;
		for (int i = 0; i < a.length - 1; i++) {
			int minIn = i;
			for (int j = i + 1; j < a.length; j++) {
				if (a[minIn] > a[j]) {
					minIn = j;
				}
			}
			temp = a[i];
			a[i] = a[minIn];
			a[minIn] = temp;
		}
	}
	//插入排序
	public void insertionSort() {
		for (int i = 1; i < a.length; i++) {
			int temp = a[i];
			int j = i;
			while (j > 0 && temp < a[j - 1]) {
				a[j] = a[j - 1];
				j--;
			}
			a[j] = temp;
		}
	}
	//输出当前的数组
	public void display()
	{
		for (int j = 0; j < a.length; j++)
			System.out.print(a[j] + " "); 
		System.out.println("");
	}
}

public class SortApp {
	public static void main(String[] args) {
		long start,end;
		//创建一个含有一万随即项的随机数组
		ArrayBub a = new ArrayBub(10000);
		start=System.currentTimeMillis();
		a.selectSort();
		//a.insertionSort();
		//a.bubbleSort();
		end=System.currentTimeMillis();
		//输出排序所用时间,单位为毫秒
		System.out.println(end-start);	
	}
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注