Сортировка через рекурсию

Массив должен сортироваться по возрастанию с помощью рекурсивных функций, но программа не работает. Как исправить?

#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]);

}

Ответы (0 шт):