色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java快速排序和冒泡排序

Java中的排序算法有很多種,在其中快速排序和冒泡排序是比較常用的兩種。這篇文章將分別介紹這兩種排序算法的實現(xiàn)方法和運行效率。

快速排序:

public static void quickSort(int[] arr, int start, int end) {
if (start< end) {
int pivot = arr[start];
int i = start + 1;
int j = end;
while (i<= j) {
while (i<= j && arr[i]< pivot) {
i++;
}
while (i<= j && arr[j] >pivot) {
j--;
}
if (i<= j) {
swap(arr, i, j);
}
}
swap(arr, start, j);
quickSort(arr, start, j - 1);
quickSort(arr, j + 1, end);
}
}
public static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}

快速排序的實現(xiàn)方法比較簡單,基本思路是選取一個元素(通常是第一個或者最后一個元素)作為軸心(pivot),然后把數(shù)組劃分為兩個部分,一部分是小于軸心的,另一部分是大于軸心的。然后對這兩個部分分別遞歸地進行快速排序。

快速排序的時間復雜度為O(nlogn),通常優(yōu)于冒泡排序。

冒泡排序:

public static void bubbleSort(int[] arr) {
int n = arr.length;
for (int i = 0; i< n - 1; i++) {
for (int j = 0; j< n - i - 1; j++) {
if (arr[j] >arr[j + 1]) {
swap(arr, j, j + 1);
}
}
}
}
public static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}

冒泡排序的實現(xiàn)方法比較簡單,基本思路是從第一個元素開始,兩兩比較相鄰元素的大小,如果發(fā)現(xiàn)前一個元素大于后一個元素,就交換這兩個元素的位置。這樣一輪下來,最大的元素就像氣泡一樣"冒"到了數(shù)組的最后面。然后對剩下的元素重復這個過程。

冒泡排序的時間復雜度為O(n^2),通常比快速排序慢。