|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Feb 2010
Messaggi: 10
|
[C] Merge Sort Memorizzare gli indici
Ciao sto realizzando un merge sort posto il codice:
Codice:
void merge(int a[], int left, int center, int right, int indici[]) { int i, j, k; int b[MAX]; i = left; j = center+1; k = 0; 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++; } while (j<=right) { b[k] = a[j]; j++; k++; } for (k=left; k<=right; k++) a[k] = b[k-left]; } void mergesort(int a[], int left, int right, int indici[]) { int center; if(left<right) { center = (left+right)/2; mergesort(a, left, center,indici); mergesort(a, center+1, right, indici); merge(a, left, center, right, indici); } } } in modo tale che se stampo a[indici[i]] mi riporta l'array originale Es 1 - 2 - 3 Dopo il merge 3 - 2 - 1 indice[2 1 0] con a[indici[i]] ritorna 1 - 2 - 3 Grazie Ultima modifica di Benti : 18-02-2010 alle 19:56. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:42.