Un vector V és un vector que està compost de dues parts:
tals que està ordenat de manera escrictament decreixent i està ordenat de manera escrictament creixent. A més, . Finalment tenim que . És a dir, cap de totes dues parts és buida.
Cal implementar la funció
void ordena(const vector<int>& v, int pos, vector<int>& r)
amb la següent especificació:
PRE:
és un vector V tal que
,
és la posició en què es troba
a
i
.
POST: El vector
conté tots els elements del vector
i està ordenat.
Només cal que envieu la funció que us demanem i les accions i funcions que vosaltres mateixos definiu. La resta no es tindrà en compte.
No es pot fer servir l’operació sort de la biblioteca
stl.
Pista: saber la posició en què es troba us pot ajudar a ordenar el vector en temps lineal.
IMPORTANT: Només cal que envieu la funció que us
demanem i les accions i funcions que vosaltres mateixos definiu.
Mantingueu, però, les definicions de tipus i els
#includes.
Un nombre indeterminat de vectors V amb el següent format: un enter que n’indica la mida, després el vector V, després la posició on es troba a i finalment un vector de la mateixa mida que . Tot vector V té una mida més gran o igual a 3.
El vector està ordenat i conté tots els elements de .
ENTRADA 1: 10 20 18 16 2 4 6 8 10 12 14 3 SORTIDA 1: 2 4 6 8 10 12 14 16 18 20 ENTRADA 2: 10 20 2 4 6 8 10 12 14 16 18 1 SORTIDA 2: 2 4 6 8 10 12 14 16 18 20 ENTRADA 3: 10 20 18 16 2 4 6 8 10 12 14 3 SORTIDA 3: 2 4 6 8 10 12 14 16 18 20 ENTRADA 4: 5 14 11 8 2 14 3 SORTIDA 4: 2 8 11 14 14 ENTRADA 5: 10 20 2 4 6 8 10 12 14 16 18 1 SORTIDA 5: 2 4 6 8 10 12 14 16 18 20