Merge sort: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Riga 53:
#include <stdio.h>
#define N 8
void mergesort(int a[], int left, int right);▼
void merge(int a[], int left, int center, int right);
mergesort(v, 0, n-1);▼
}▼
scanf("\t%d ", &a[k]);
void mergesort(int a[], int left, int right){▼
if (left<right){▼
for(k=0; k<N; k++){
center = (left+right)/2;▼
mergesort(a, center+1, right);▼
merge(a, left, center, right);▼
}▼
▲ }
▲ int i, j, k;
while ((i<=center) && (j<=right)){▼
if (a[i] <= a[j]) { b[k] = a[i]; i++; }▼
else { b[k] = a[j]; j++;}▼
k++;▼
}
}
while (i<=center) {▼
b[k] = a[i]; i++; k++;▼
▲ }
int
▲ }
i = left; j = center+1; k = 0;
▲ for (k=left; k<=right; k++)
a[k] = b[k-left];▼
▲ }
}
while (j<=right) {
b[k] = a[j]; j++; k++;
}
for (k=left; k<=right; k++)
}
===[[C++]]===
| |||