package sort;

public class BubbleSort {

	public static void main(String[] args) {
		// 创建一个乱序数组
		int[] array = { 63, 4, 24, 1, 3, 15 };
		BubbleSort sorter = new BubbleSort();
		System.out.println("冒泡升序排序");
		sorter.sort_ASC(array);
		System.out.println("冒泡降序排序");
		sorter.sort_DESC(array);

	}

	/**
	 * 冒泡升序排序:两两比较,小在前,大在后
	 * 
	 * @param array 要排序的数组
	 */
	public void sort_ASC(int[] array) {
		for (int i = 1; i < array.length; i++) {
			// 比较两个相邻元素,较大的数往后冒泡
			for (int j = 0; j < array.length - i; j++) {
				if (array[j] > array[j + 1]) {
					// 把第1个值放到临时变量中
					int temp = array[j];
					// 把第2个值赋给第1个值
					array[j] = array[j + 1];
					// 把临时变量赋给第2个值
					array[j + 1] = temp;
				}
			}
		}
		// 遍历打印数组
		for (int i : array) {
			System.out.print(" " + i);
		}
		System.out.println();
	}

	/**
	 * 冒泡降序排序:两两比较,大在前,小在后
	 * 
	 * @param array 要排序的数组
	 */
	public void sort_DESC(int[] array) {
		for (int i = 1; i < array.length; i++) {
			// 比较两个相邻元素,较小的数往后冒泡
			for (int j = 0; j < array.length - i; j++) {
				if (array[j] < array[j + 1]) {
					// 把第1个值放到临时变量中
					int temp = array[j];
					// 把第2个值赋给第1个值
					array[j] = array[j + 1];
					// 把临时变量赋给第2个值
					array[j + 1] = temp;
				}
			}
		}
		// 遍历打印数组
		for (int i : array) {
			System.out.print(" " + i);
		}
		System.out.println();
	}
}