Алгоритм быстрой сортировки (quicksort)
Я новичок, пытаюсь сварганить quicksort. Не могли бы подсказать, что я делаю не так ?
#include <iostream>
using namespace std;
void quicksort(int array[], int start, int end) {
if (start >= end) {
return;
}
int pivot = partition(array, start, end);
quicksort(array, start, pivot - 1);
quicksort(array, pivot + 1, end);
}
void partition(int main_array[], int start, int end) {
int value = main_array[end];
int position = start;
for (int i = start; i < end-1; i++) {
if (main_array[i] <= value) {
int temp = main_array[i];
main_array[i] = main_array[position];
main_array[position] = temp;
position++;
}
}
main_array[end] = main_array[position];
main_array[position] = value;
return position;
}
int main() {
int n;
cin >> n;
int m[n];
for (int i = 0; i < n; i++) {
cin >> m[i];
}
quicksort(m, 0, n-1);
for (int i = 0; i < n; ++i) {
cout << m[i] << ' ';
}
return 0;
}