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 mergemergesort(int a[], int left, int center, int right);
void merge(int a[], int left, int center, int right);
 
 
void main() {
n=8;
 
v[n]={ 10, 3, 15, 2, 1, 4, 9, 0};
int i, ja[N], k;
mergesort(v, 0, n-1);
for (k=left0; k<=rightN; k++){
}
scanf("\t%d ", &a[k]);
}
void mergesort(int a[], int left, int right){
}
int center;
mergesort(v a, (0), n(N-1));
if (left<right){
for(k=0; k<N; k++){
center = (left+right)/2;
mergesortprintf(a,"\t%d left", centera[k]);
}
mergesort(a, center+1, right);
}
merge(a, left, center, right);
}
}
 
}
void mergesort(int a[], int left, int right);{
void merge(int a[], int left, int center, int right) {;
if (left<right){
int i, j, k;
center = (left+right)/2;
int b[10];
merge mergesort(a, left, center, right);
i = left; j = mergesort(a, center+1; k =, 0right);
mergesort merge(a, left, center+1, right);
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++;
void mergesortmerge(int a[], int left, int center, int right) {
}
int whilei, (j<=right), k; {
int b[k10] = a[j]; j++; k++;
 
}
i = left; j = center+1; k = 0;
 
for (k=left; k<=right; k++)
while ((i<=center) && (j<=right)){
a[k] = b[k-left];
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++;
}
while (j<=right) {
b[k] = a[j]; j++; k++;
}
 
for (k=left; k<=right; k++)
a[k] = b[k-left];
}
 
===[[C++]]===