Ordenació per Selecció amb Iteradors S54195


Statement
 

pdf   zip   tar

L’algorisme d’ordenació per selecció consisteix en, de forma iterativa, trobar l’element mínim de la part no ordenada i col·locar-lo al principi d’aquesta part. Concretament:

  1. Es busca l’element mínim del rang [begin, end) i s’intercanvia amb l’element apuntat per begin.

  2. Seguidament, es busca el mínim del rang que va des del següent a begin fins a end, i s’intercanvia amb el segon element.

  3. Es repeteix fins que queda un sol element per processar.

Fes una funció amb la capçalera

/**
 * @brief Ordena un rang d'una llista usant selecció.
 *
 * @param begin Iterador al principi del rang.
 * @param end Iterador al final del rang (no inclòs).
 * @pre begin i end delimiten un rang vàlid d'una llista.
 * @post El rang [begin, end) queda ordenat ascendentment.
 */
void ordenacio_seleccio(list<int>::iterator begin,
                        list<int>::iterator end);

que ordeni el rang [begin, end) d’una llista d’enters usant l’algorisme d’ordenació per selecció.

Per exemple, si la llista conté 5 3 1 4 2, després de cridar la funció la llista ha de contenir 1 2 3 4 5.

Entrada

L’entrada consisteix en una seqüència d’enters separats per espais, que es llegeix fins al final de l’entrada.

Sortida

La sortida és una línia amb els elements de la llista ordenada ascendentment, separats per espais.

Observació

Als fitxers públics (icona del gatet) trobaràs: main.cc (el programa principal, amb l’entrada/sortida feta), ordenacio.cc (a on has d’implementar la funció) i un Makefile.

Has d’implementar ordenacio_seleccio al fitxer ordenacio.cc i enviar només aquest fitxer.

Public test cases
  • Input

    5 3 1 4 2
    

    Output

    1 2 3 4 5
    
  • Input

    1 2 3 4 5
    

    Output

    1 2 3 4 5
    
  • Input

    5 4 3 2 1
    

    Output

    1 2 3 4 5
    
  • Information
    Author
    Pau Fernández
    Language
    Catalan
    Other languages
    Spanish
    Official solutions
    C++
    User solutions
    C++