Сортировка через рекурсию
Массив должен сортироваться по возрастанию с помощью рекурсивных функций, но программа не работает. Как исправить?
#include <iostream>
#include <iomanip>
using namespace std;
double sort(double*a, int n);
void sort(double *x, double *y);
int main()
{
double* a;
int n;
cout << "Array size: ";
cin >> n;
a = new double[n];
for (int i = 0; i < n; i++) {
cout << i + 1 << " element: ";
cin >> a[i];
}
sort(a,n);
for (int i = 0; i < n; i++) {
cout << a[i] << ' ';
}
return 0;
}
void sort(double *x, double *y)
{
double t;
if (*x > *y) {
t = *x;
*x = *y;
*y = t;
}
return;
}
double sort(double* a, int n)
{
if (n == 2)
sort(a[0], a[1]);
return sort(sort(a, n - 1), a[n - 1]);
}