Un vector R és un vector que està compost de dues parts:
tals que la part i la part estan ordenades de manera estrictament creixent però . A més tenim que . És a dir, cap de totes dues parts és buida.
Cal implementar la funció
void ordena(vector<int>& v, int pos) amb la
següent especificació:
PRE:
és un vector R tal que
,
i
és la posició en què es troba
a
.
POST: El vector
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.
Per altra banda, si feu servir un vector auxiliar per a fer l’ordenació tindreu una penalització de a la correció manual encara que tingueu un semàfor verd.
Un nombre indeterminat de vectors R amb el següent format: un enter que n’indica la mida, després el vector R i finalment la posició on es troba . Tot vector R té una mida més gran o igual a 3.
El vector ordenat.
ENTRADA 1: 15 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 5 SORTIDA 1: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ENTRADA 2: 15 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 13 SORTIDA 2: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ENTRADA 3: 15 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 SORTIDA 3: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ENTRADA 4: 5 12 15 4 7 8 2 SORTIDA 4: 4 7 8 12 15