起泡/氣泡排序(Bubble Sort)- java實現
阿新 • • 發佈:2018-12-11
過程很簡單,首先將第一個元素與第二個元素進行比較,若第一個元素比第二個元素大,則進行交換,然後比較第二個元素與第三個元素。依次類推,直至第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; }