Java中常用的排序算法有很多種,其中快排和冒泡是比較常見的兩種。
首先,我們來看一下快排的代碼實現:
public static void quickSort(int[] arr, int left, int right) { int i = left, j = right; int pivot = arr[(left + right) / 2]; while (i<= j) { while (arr[i]< pivot) { i++; } while (arr[j] >pivot) { j--; } if (i<= j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; i++; j--; } } if (left< j) { quickSort(arr, left, j); } if (i< right) { quickSort(arr, i, right); } }
以上代碼實現了快排算法,主要思路是先將數組分為小于基準值和大于基準值的兩個序列,再通過遞歸的方式對序列進行排序。
接下來,我們看一下冒泡排序的代碼實現:
public static void bubbleSort(int[] arr) { int temp; for (int i = 0; i< arr.length - 1; i++) { for (int j = 0; j< arr.length - 1 - i; j++) { if (arr[j] >arr[j + 1]) { temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } }
以上代碼實現了冒泡排序算法,主要思路是比較相鄰的兩個元素,如果前者大于后者,則交換位置,不斷重復這個過程,直到序列有序。
綜合來看,快排算法的時間復雜度為O(nlogn),較冒泡排序要快些。但是在某些情況下,冒泡排序的效率也不低,比如序列本身已經基本有序,此時冒泡排序可以達到O(n)的時間復雜度。
上一篇ajax 本地 應用程序
下一篇java怎么和傳感器交互