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

java快速排序和冒泡法復雜度

李中冰1年前6瀏覽0評論

Java作為一種常用的編程語言,在排序算法方面也有其獨到之處。其中,快速排序和冒泡法是兩種常見的排序算法。

首先,讓我們來看一下快速排序:

public static void quickSort(int[] arr, int left, int right) {
if (left >= right)
return;
int key = arr[left];
int i = left + 1;
int j = right;
while (i<= j) {
while (i<= right && arr[i]< key)
i++;
while (j >= left && arr[j] >key)
j--;
if (i< j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
int temp = arr[left];
arr[left] = arr[j];
arr[j] = temp;
quickSort(arr, left, j - 1);
quickSort(arr, j + 1, right);
}

快速排序的時間復雜度為O(nlogn),因此它是一種非常高效的排序算法。簡單來說,就是將序列不斷分割為兩個子序列,直到每個子序列只有一個元素為止,然后通過比較大小不斷合并子序列,最終得到一個有序的序列。

接下來,讓我們來看一下冒泡法:

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]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}

冒泡法的時間復雜度為O(n^2),雖然它比快速排序要慢得多,但在一些小規模、簡單的排序問題中,它也有其獨特的應用。

綜上所述,Java中的快速排序和冒泡法都有其特殊的地方。在實際使用中,應根據具體情況選擇適當的排序算法,以達到更好的效果。