欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java選擇法和快速排序法區別

劉姿婷1年前6瀏覽0評論

Java語言中,選擇排序和快速排序是兩種常見的排序算法。選擇排序是一種簡單的排序算法,可以應用于小規模的數據排序,比較適用于數據量較小的情況。而快速排序是一種高效的排序算法,可以應用于大規模的數據排序,比較適用于數據量較大的情況。

// 選擇排序示例
public static void selectionSort(int[] arr) {
for (int i = 0; i< arr.length - 1; i++) {
int minIndex = i;
for (int j = i + 1; j< arr.length; j++) {
if (arr[j]< arr[minIndex]) {
minIndex = j;
}
}
if (minIndex != i) {
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
}
// 快速排序示例
public static void quickSort(int[] arr, int left, int right) {
if (left >= right) {
return;
}
int i = left, j = right, 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--;
}
}
quickSort(arr, left, j);
quickSort(arr, i, right);
}

從代碼的實現可以看出,選擇排序是通過找到最小值并交換位置來實現排序的,在循環過程中需要比較每一個元素,因此時間復雜度為O(n2)。而快速排序是基于分治思想實現的,先選擇一個基準點,然后將小于基準點的放在左邊,大于基準點的放在右邊,再對左右兩部分分別進行快排,因此時間復雜度為O(log n)。

綜上所述,選擇排序適用于數據量較小的情況,并且實現較為簡單,而快速排序適用于數據量較大的情況,并且實現效率更高。