Salve a tutti vorrei un aiuto per applicare il marge sort sulla fusione di due liste.
questo è il codice di fusione che mi sono fatto per le due liste date come parametri
codice:
ListaV ListaV::fusione(ListaV &l1,ListaV &l2){
ListaV l3;
posizione p1,p2,p3;
tipoelem e1,e2,e3;
p1=l1.primoLista();
p2=l2.primoLista();
p3=l3.primoLista();
while ((!l1.fineLista(p1))&&(!l2.fineLista(p2))){
e1=l1.leggiLista(p1);
e2=l2.leggiLista(p2);
if (e1<e2){
l3.insLista(e1,p3);
p1=l1.succLista(p1);
}else{
l3.insLista(e2,p3);
p2=l2.succLista(p2);
p3=l3.succLista (p3);
}//if,else
while (!l1.fineLista(p1)){//while2
l3.insLista(l1.leggiLista(p1),p3);
p1=l1.succLista(p1);
p3=l3.succLista(p3);
}//while2
while (!l2.fineLista(p2)){//while3
l3.insLista(l2.leggiLista(p2),p3);
p2=l2.succLista(p2);
p3=l3.succLista(p3);
}//while3
}//while
return l3;
};
come posso crearmi il merge sort?
grazie