Sto cercando di ordinare un vettore di double con il metodo merge sort ma non riesco...io utilizzo questo codice
codice:
void Merge(double A[], int p, int q, int r)
{
int i, j, k;
double *B;
i = p;
j = q+1;
k = 0;
B=(double*)malloc (sizeof(double));
while (i<=q && j<=r) {
if (A[i]<A[j]) {
B[k] = A[i];
i++;
} else {
B[k] = A[j];
j++;
}
k++;
}
while (i<=q) {
B[k] = A[i];
i++;
k++;
}
while (j<=r) {
B[k] = A[j];
j++;
k++;
}
for (k=p; k<=r; k++)
A[k] = B[k-p];
return;
}
void MergeSort(double A[], int p, int r)
{
int q;
if (p<r) {
q = (p+r)/2;
MergeSort(A, p, q);
MergeSort(A, q+1, r);
Merge(A, p, q, r);
}
}