|
|||||||
|
|
|
![]() |
|
|
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 20:56. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:26.



















