1. 程式人生 > >起泡/氣泡排序(Bubble Sort)- java實現

起泡/氣泡排序(Bubble Sort)- java實現

過程很簡單,首先將第一個元素與第二個元素進行比較,若第一個元素比第二個元素大,則進行交換,然後比較第二個元素與第三個元素。依次類推,直至第n-1與第n個元素比較完,這樣最大的元素會被交換到最後一個位置。上述過程為一趟排序,然後進行第二趟排序,直到第n-1個元素...

一般需要n-1趟比較,才可以將整個無序的陣列排成有序狀態,時間複雜度為O(n2)。

演算法實現:

	public static int[] bubbleSort(int[] arr) {
		// 比較迴圈比陣列長度小1,因為比較第二個時,已經和第一個進行過比較
		for (int i = 0; i < arr.length - 1; i++) {
			// -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;
				} // if
			} // for
		} // for
		return arr;
	}