Ordenació per selecció¶
Es disposa d’un programa min. El seu funcionament és el següent: rep pel canal estandard d’entrada un enter. Si l’enter llegit és menys que el valor que té guardat com a mínim dels que ha llegit abans, el guarda com el nou mínim, i escriu al canal estàndard de sortida, el valor que tenia guardat com a mínim. Quan rep un -1 treu pel canal estàndard de sortida el -1 seguit de tots els nombres diferents de -1 que li arriben per canal estàndard d’entrada, seguit del mínim que té guardat sempre que aquest no sigui el d’inicialització del programa (no obtingut del canal estàndard d’entrada). Escriu finalment un -1
Per exemple,
usuari@computador $ echo "-1 -1" | min usuari@computador $ usuari@computador $ echo "40 2 15 -1 -1" | min 40 15 -1 2 -1 usuari@computador $ echo "40 2 15 -1 0 1 -1" | min 40 15 -1 0 1 2 -1
D’altra banda, disposem d’un altre programa presenta. La primera etapa del programa rep els enters que li arriben pel canal estandard d’entrada no fent res més que llegint-los fins que rep -1. A partir d’aquí, els següents enters que rep els escriu al canal estàndard de sortida fins que rep un -1 que ja no escriu.
Per exemple,
usuari@computador $ echo "40 2 15 -1 0 1 -1" | presenta 0 1
Amb aquests programes, dissenyeu una comanda que rep pel canal estàndard d’entrada una seqüència de nombres i treu pel canal estàndard de sortida els 10 primers mínims que té la seqüencia. (O els 10 primers nombres si fos ordenada ascendentment.
Els programes a baixar són entsort.py, min, min.py, presenta, presenta.py. Heu de fer executables min i presenta.