1. 程式人生 > >JAVA中陣列氣泡排序和選擇排序

JAVA中陣列氣泡排序和選擇排序

氣泡排序的思想:兩兩之間比較大小,小的數在前,大的數在後。共比較i-1次。

	static void MaoPaoArray(int[] a) {
		for (int i = 0; i < a.length - 2; i++) {
			for (int j = 0; j < a.length - 1 - i; j++) {
				if (a[j] > a[j + 1]) {
					int temp = a[j];
					a[j] = a[j + 1];
					a[j + 1] = temp;
				}
			}
		}
		for (int i = 0; i < a.length; i++) {
			System.out.println(a[i]);
		}
	}

每次比較從第一個數a[j]開始,兩兩比較,數大的放後面。每次比較都會產生所有比較的數字中最大的數,依次放在後面,即每次兩兩比較的時候只比較到a[j-1-i]。共比較i-1次。

選擇排序思想:從索引0開始依次和後面所有的數字比較,小的數字放前面,每次比較完成後第一個數字就是最小的數字。一共比較i-1次。

	static void SelectArray(int[] a) {
		for (int i = 0; i < a.length - 1; i++) {
			for (int j = i + 1; j < a.length; j++) {
				if (a[i] > a[j]) {
					int temp = a[i];
					a[i] = a[j];
					a[j] = temp;
				}
			}
		}
		for (int i = 0; i < a.length; i++) {
			System.out.println(a[i]);
		}
	}

a[i]是每次比較的最前面的數,j=i+1是本次比較中的第二個數字,比較後將小的數放前面,然後j++,將a[i]後的所有數字比較完,a[i]即為所有數字中最小的數。共比較i-1次。