Merge sort: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m →algoritmo in C: reso più leggibile |
mNessun oggetto della modifica |
||
Riga 50:
Seguono alcune implementazioni in vari [[Linguaggio di programmazione|linguaggi]].
#include <stdio.h>
#define LEN 8
void merge(int a[], int left, int center, int right)
{
int b[10];
i = left;
j = center+1;
while ((i<=center) && (j<=right)) {
if (a[i] <= a[j]) {
b[k] = a[i];
i++;
}
else {
b[k] = a[j];
j++;
}
}
while (i<=center) {
b[k] = a[i];
i++;
}
while (j<=right) {
b[k] = a[j];
j++;
}
for (k=left; k<=right; k++)
a[k] = b[k-left];
}
void mergesort(int a[], int left, int right)
{
int center;
if(left<right){
center = (left+right)/2;
mergesort(a, left, center);
}
}
int main(void)
{
int
for(i=0; i<LEN; i++) {
printf(": ");
scanf("%d", &a[i]);
}
mergesort(a, 0, LEN-1);
printf("[ ");
for(i=0; i<LEN; i++)
printf("%d ", a[i]);
return 0;
}
===[[C++]]===
| |||