Salve a tutti,
oggi studiavamo in classe un algoritmo di merge che facesse la fusione di due vettori ordinati in un terzo vettore, inserendoli sempre in modo ordinato.
Il punto è che gli algoritmi della professoressa come al solito non funzionano, e se cerco in internet "merge sort" mi esce la fusione di due vettori senza vettore di appoggio od altro, o comunque altri algoritmi molto più complicati (e mi pare assurdo dover capire un algoritmo più complicato per correggerne uno più semplice che non funziona).
Mi chiedevo quindi, dopo svariati sforzi, se posso postarvi la codifica dell'algoritmo e magari gli date un occhiata:
codice:
int i,j,k;
k=0;
i=0;
j=0;
int a[]= {2,3,6};
int n = 3;
int b[]= {4,5,7,9};
int m = 4;
int c[7];
while(i<n && j<m)
{
if(a[i]<b[j])
{
c[k] = a[i];
i++;
} else {
c[k] = b[j];
j++;
}
k++;
}
while(i<n)
{
c[k] = a[i];
i++;
k++;
}
while(j<m)
{
c[k] = a[j];
j++;
k++;
}
Non fate caso ai cicli while utilizzati come cicli for, è semplicemente la professoressa che è fissata.
Vi ringrazio in anticipo,
Neptune.