У меня есть быстрая сортировка, которая работает, и сортировка выбора, которая также работает - я хочу отсортировать int[]
случайных чисел с быстрой сортировкой до array.length = 1
, а затем для этой последней сортировки выбора вызова элемента. Я знаю, что мне нужно иметь условие, которое проверяет array.length
, а когда length = 1
, тогда возвращает selectionSort()
Я не уверен, как структурировать его в рекурсивных вызовах в пределах quickSort()
. Вот два моих метода сортировки:
QuickSort:
public void quickSort(int array[], int start, int end) {
int i = start; // index val of left-to-right scan
int k = end; // index val of right-to-left scan
if (end - start >= 1){
PIVOT = array[start];
while (k > i){
while (array[i] <= PIVOT && i <= end && k > i)
i++;
while (array[k] > PIVOT && k >= start && k >= i)
k--;
if (k > i)
swap(array, i, k);
}
swap(array, start, k);
quickSort(array, start, k - 1);
System.out.println(k);
quickSort(array, k + 1, end);
}
return;
}
Выбор сортировки:
public void selectionSort(int[] nums) {
//nums[0] = array[0];
System.out.println(nums.length);
for (int i = 0; i < (nums.length - 1); i++) {
for (int j = i + 1; j < nums.length; j++) {
if (nums[i] > nums[j]) {
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
}
}
}