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);
  }
}