[C++] copiare elementi di un array in un array ordinato
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.
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.
Risposte
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?
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?
innanzitutto grazie per la risposta.
non è proprio cosi, : v1 è ordinato, v2 no.
non è proprio cosi, : v1 è ordinato, v2 no.
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.