java排序算法—冒泡排序

快速排序

冒泡排序的思想方法:
1.從無序序列頭部開始,進行兩兩比較,根據大小交換位置,直到最後將最大(小)的數據元素交換到了無序隊列的隊尾,從而成爲有序序列的一部分;
2.下一次繼續這個過程,直到所有數據元素都排好序。算法的核心在於每次通過兩兩比較交換位置,選出剩餘無序序列裏最大(小)的數據元素放到隊尾。
由於在排序過程中總是小數往前放,大數往後放,相當於氣泡往上升,所以稱作冒泡排序。

代碼實現

public class BubbleSort {
	public static void main(String[] args) {
		Scanner read = new Scanner(System.in);// 創建Scanner對象read 接受從控制檯輸入
		int n;// 元素個數
		System.out.println("請輸入元素個數:");
		n = read.nextInt();
		int arr[] = new int[n];
		int k, z;
		for (k = 0; k < n; k++) {
			arr[k] = read.nextInt(); //接受控制檯輸入的數據
		}
		//int[] arr = { 5, 7, 3, 1, 6, 8, 9, 2 };
		System.out.print("排序前的數組爲:");
		for (int num : arr) {			//顯示排序前數組
			System.out.print(num + " ");
		}
		System.out.println(" ");
		for (int i = 0; i < arr.length - 1; i++) {
			// System.out.println("---------");
			//排序代碼段
			for (int j = 0; j < arr.length - i - 1; j++) {
				if (arr[j] > arr[j + 1]) {
					System.out.println(arr[j]+"與"+arr[j+1]+"交換");   //輸出交換過程
					int a = arr[j + 1];
					arr[j + 1] = arr[j];
					arr[j] = a;
					
				}
			}
		}
		System.out.println("");
		System.out.print("冒泡排序後的數組爲:");	//顯示結果
		for (int num2 : arr) {
			System.out.print(num2 + " ");
		}
	}
}

測試結果:
在這裏插入圖片描述