来一段快速排序java代码
时间: 2023-03-08 18:12:37 浏览: 61
答:
public static void quickSort(int[] array, int left, int right) {
if (left < right) {
int partitionIndex = partition(array, left, right);
quickSort(array, left, partitionIndex-1);
quickSort(array, partitionIndex+1, right);
}
}
private static int partition(int[] array, int left, int right) {
int pivot = array[right];
int i = left;
for (int j = left; j < right; j++) {
if (array[j] <= pivot) {
swap(array, i, j);
i++;
}
}
swap(array, i, right);
return i;
}private static void swap(int[] array, int i, int j) {
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
相关问题
来一段快速排序Java的代码
答:
public class QuickSort {
public static void sort(int[] arr, int left, int right) {
int index = partition(arr, left, right);
if (left < index - 1) {
sort(arr, left, index - 1);
}
if (index < right) {
sort(arr, index, right);
}
}
private static int partition(int[] arr, int left, int right) {
int pivot = arr[(left + right) / 2];
while (left <= right) {
while (arr[left] < pivot) {
left++;
}
while (arr[right] > pivot) {
right--;
}
if (left <= right) {
int temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
left++;
right--;
}
}
return left;
}
}
来一段快速排序的java代码
public void quickSort(int[] array, int lowerIndex, int higherIndex) {
int i = lowerIndex;
int j = higherIndex;
int pivot = array[lowerIndex + (higherIndex - lowerIndex) / 2]; while (i <= j) {
while (array[i] < pivot) {
i++;
}
while (array[j] > pivot) {
j--;
}
if (i <= j) {
int temp = array[i];
array[i] = array[j];
array[j] = temp;
i++;
j--;
}
}
if (lowerIndex < j)
quickSort(array, lowerIndex, j);
if (i < higherIndex)
quickSort(array, i, higherIndex);
}