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

java選擇排序和快速排序

錢多多1年前7瀏覽0評論

Java是一門廣為使用的編程語言,其中的排序算法有很多種。本文將介紹Java中的兩種排序:選擇排序和快速排序。

選擇排序是一種簡單的排序算法。它的基本思想是從待排序的數據元素中選擇最小元素放在最前面,再從剩余未排序元素中選擇最小元素放在已排序序列的后面,以此類推,直到所有元素都排好序。

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

然而,選擇排序的時間復雜度為O(n^2),在數據規模較大時會比較慢。因此,更高效的排序算法——快速排序應運而生。

快速排序是將一個待排序的序列分成兩個部分,其中一部分的所有元素均小于另一部分中的所有元素,然后再對兩部分分別采用快速排序算法,直到各部分只有一個元素就為止。

public static void quickSort(int[] arr, int low, int high) {
if (low< high) {
int pivot = partition(arr, low, high);
quickSort(arr, low, pivot - 1);
quickSort(arr, pivot + 1, high);
}
}
private static int partition(int[] arr, int low, int high) {
int pivot = arr[high];
int i = low - 1;
for (int j = low; j< high; j++) {
if (arr[j]< pivot) {
i++;
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
int temp = arr[i + 1];
arr[i + 1] = arr[high];
arr[high] = temp;
return i + 1;
}

快速排序的時間復雜度為O(nlogn),效率比選擇排序高很多,因此在實際應用中,快速排序被廣泛使用。