PDA

Visualizza la versione completa : [c++] merge sort


nicodj
09-05-2005, 11:55
ciao ragazzi...
il prof cia a dato un bel esercizio...
praticamente dati due vettori ordinati bisogna inserire in un 3 vettore tutti i valori dei due vettori ordinatamente... ci ha detto che si chiama merge sort... ma a dire il vero trovo un po di difficoltà potete aiutarmi? grazie

dekdek
09-05-2005, 12:12
Ecco un pessimo algoritmo che dovrebbe risolvere il problema...



v1 = primo vettore
v2 = secondo vettore
v = vettore unione
i1 = 0; //punta al primo elemento del primo vettore
i2 = 0; //punta al primo elemento del secondo vettore
l1 = lunghezza primo vettore
l2 = lunghezza secondo vettore

FINCHE' (i1<l1 OPPURE i2<l2) {
SE (i1 == l1) ALLORA {
inserisci v2[i2] in v
i2++; //punta all'elemento successivo
}
ALTRIMENTI SE (i2 == l2) {
inserisci v1[i1] in v
i1++; //punta all'elemento successivo
}
ALTRIMENTI {
SE (v[i1]<=v[i2]) {
inserisci v1[i1] in v
i1++; //punta all'elemento successivo
}
ALTRIMENTI {
inserisci v2[i2] in v
i2++; //punta all'elemento successivo
}
}
}

nicodj
12-05-2005, 00:09
scusa per il ritardo comunque grazie

Loading