|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Aug 2002
Messaggi: 2518
|
[C] Merge di due vettori
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++;
}
Vi ringrazio in anticipo, guylmaster. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2788
|
L'errore è in rosso:
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++;
}
|
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Aug 2002
Messaggi: 2518
|
Quote:
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:06.




















