[C++] copiare elementi di un array in un array ordinato

Messaggioda sici_90 » 09/07/2018, 20:06

ciao a tutti ,
avrei bisogno di un vostro aiuto,
devo scrivere un programma che prenda in input 2 vettori v1( supposto ordinato in senso crescente) e v2 e copi gli elementi di v2 in v1 mantenendo l'ordine.
io avevo risolto "barando" nel senso che ho copiato gli elementi di v2 in v1 e poi ho ordinato con un bubblesort.
invece vorrei scrivere un programma in grado di inserire elemento per elemento al posto giusto direttamente.
Mi potreste cominciare a dare un input logico su come agire?
poi metto giu 2 righe e vediamo insieme cosa ne esce.
sici_90
Junior Member
Junior Member
 
Messaggio: 73 di 148
Iscritto il: 14/05/2013, 22:23

Re: [C++] copiare elementi di un array in un array ordinato

Messaggioda Super Squirrel » 09/07/2018, 21:27

A scanso di equivoci... intendi qualcosa del genere?

v1: 1 4 5 8
v2: 2 3 6 7 9
--> v1: 1 2 3 4 5 6 7 8 9

Ossia vuoi implementare un algoritmo per unire due vettori già ordinati in un terzo vettore sempre ordinato?
Chi dorme in democrazia, si sveglia in dittatura.
Super Squirrel
Senior Member
Senior Member
 
Messaggio: 246 di 1486
Iscritto il: 16/05/2013, 22:05

Re: [C++] copiare elementi di un array in un array ordinato

Messaggioda sici_90 » 09/07/2018, 21:40

innanzitutto grazie per la risposta.
non è proprio cosi, : v1 è ordinato, v2 no.
sici_90
Junior Member
Junior Member
 
Messaggio: 74 di 148
Iscritto il: 14/05/2013, 22:23

Re: [C++] copiare elementi di un array in un array ordinato

Messaggioda apatriarca » 10/07/2018, 00:37

L'idea di base è quella di usare l'algoritmo che si usa nell'insertion sort per ogni elemento di v2. Ad ogni iterazione prendi cioè un elemento di v2 e lo inserisci iterando partendo dalla fine di v1. L'alternativa è ordinare v2 e fare un merge dei due array.
apatriarca
Moderatore
Moderatore
 
Messaggio: 5067 di 10436
Iscritto il: 08/12/2008, 20:37
Località: Madrid


Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite