Codificación aprenderaprogramar.com: CU00119A
EJERCICIO "ORDENAR UNA SERIE DE NÚMEROS CONFORME A UNOS CONDICIONANTES"
1. Objetivo: ordenar una serie de números de mayor a menor
2. Condicionantes: Cantidad de números a ordenar indeterminada. Necesario conservar la serie inicial de números.
3. Datos de partida: Una serie de n números.
4. Método: Se basará en la siguiente idea. Se buscará el número más grande de la lista que pasará a una nueva lista. Con los elementos restantes repetimos el proceso para obtener el segundo número de la lista nueva. El proceso se repite hasta que no quedan números por extraer.
5. Resultados a obtener: Lista ordenada del tipo orden(1) = ..., orden(2) = ..., orden(3) = ..., ..., orden(n) = ...
SOLUCIÓN:
1º) |
Planteamos varios casos: Problema muy similar al anterior. Repetimos pues las consideraciones antes expuestas y los cuatro casos que teníamos. |
Caso 1
|
33
|
88
|
57
|
22
|
15
|
Caso 2
|
18
|
16
|
13
|
11
|
44
|
Caso 3
|
215
|
31
|
7
|
12
|
66
|
Caso 4
|
15
|
22
|
33
|
15
|
6
|
2º) | Tanteamos el método: Partimos de la idea expuesta y la aplicamos a los distintos casos. |
Caso 1
|
33
|
88
|
57
|
22
|
15
|
Paso 1)
|
v(1) > o(1) ? -> Sí -> o(1) = v(1) ; Previsto eliminar: v(1)
|
|
v(2) > o(1) ? -> Sí -> o(1) = v(2) ; Previsto eliminar: v(2)
|
|
v(3) > o(1) ? -> No
|
|
v(4) > o(1) ? -> No
|
|
v(5) > o(1) ? -> No
|
|
o(1) = v(2) Eliminado v(2)
|
Paso 2)
|
v(1) > o(2) ? -> Sí -> o(2) = v(1) ; Previsto eliminar: v(1)
|
|
v(2) Está eliminado
|
|
v(3) > o(2) ? -> Sí -> o(2) = v(3) ; Previsto eliminar: v(3)
|
|
v(4) > o(2) ? -> No
|
|
v(5) > o(2) ? -> No
|
|
o(2) = v(3) Eliminado v(3)
|
Paso 3)
|
v(1) > o(3) ? -> Sí -> o(3) = v(1) ; Previsto eliminar: v(1)
|
|
|
v(2) Está eliminado
|
|
|
v(3) Está eliminado
|
|
|
v(4) > o(3) ? -> No
|
|
|
v(5) > o(3) ? -> No
|
|
|
o(3) = v(1) Eliminado v(1)
|
|
Paso 4)
|
v(1) Está eliminado
|
|
|
v(2) Está eliminado
|
|
|
v(3) Está eliminado
|
|
|
v(4) > o(4) ? -> Sí -> o(4) = v(4) ; Previsto eliminar: v(4)
|
|
|
v(5) > o(4) ? -> No
|
|
|
o(4) = v(4) Eliminado v(4)
|
|
Paso 5)
|
v(1) Está eliminado
|
|
|
v(2) Está eliminado
|
|
|
v(3) Está eliminado
|
|
|
v(4) Está eliminado
|
|
|
v(5) > o(5) ? -> Sí -> o(5) = v(5) ; Previsto eliminar: v(5)
|
|
|
o(5) = v(5) Eliminado v(5)
|
|
Paso 6)
|
Todos los elementos eliminados: no hay extracción posible.
|
Resultado final:
|
o(1) = 88
|
|
o(2) = 57
|
|
o(3) = 33
|
|
o(4) = 22
|
|
o(5) = 15
|
***************************************************
Caso 2
|
18
|
16
|
13
|
11
|
44
|
Paso 1)
|
v(1) > o(1) ? -> Sí -> o(1) = v(1) ; Previsto eliminar: v(1)
|
|
|
v(2) > o(1) ? -> No
|
|
|
v(3) > o(1) ? -> No
|
|
|
v(4) > o(1) ? -> No
|
|
|
v(5) > o(1) ? -> Sí -> o(1) = v(5) ; Previsto eliminar: v(5)
|
|
|
o(1) = v(5) Eliminado v(5)
|
|
Paso 2)
|
v(1) > o(2) ? -> Sí -> o(2) = v(1) ; Previsto eliminar: v(1)
|
|
|
v(2) > o(2) ? -> No
|
|
|
v(3) > o(2) ? -> No
|
|
|
v(4) > o(2) ? -> No
|
|
|
v(5) Está eliminado
|
|
|
o(2) = v(1) Eliminado v(1)
|
|
Paso 3)
|
v(1) Está eliminado
|
|
|
v(2) > o(3) ? -> Sí -> o(3) = v(2) ; Previsto eliminar: v(2)
|
|
|
v(3) > o(3) ? -> No
|
|
|
v(4) > o(3) ? -> No
|
|
|
v(5) Está eliminado
|
|
|
o(3) = v(2) Eliminado v(2)
|
|
Paso 4)
|
v(1) Está eliminado
|
|
|
v(2) Está eliminado
|
|
|
v(3) > o(4) ? -> Sí -> o(4) = v(3) ; Previsto eliminar: v(3)
|
|
|
v(4) > o(4) ? -> No
|
|
|
v(5) Está eliminado
|
|
|
o(4) = v(3) Eliminado v(3)
|
|
Paso 5)
|
v(1) Está eliminado
|
|
|
v(2) Está eliminado
|
|
|
v(3) Está eliminado
|
|
|
v(4) > o(5) ? -> Sí -> o(5) = v(4) ; Previsto eliminar: v(4)
|
|
|
v(5) Está eliminado
|
|
|
o(5) = v(4) Eliminado v(4)
|
|
Paso 6)
|
Todos los elementos eliminados: no hay extracción posible.
|
Resultado final:
|
o(1) = 44
|
|
o(2) = 18
|
|
o(3) = 16
|
|
o(4) = 13
|
|
o(5) = 11
|
***************************************************
Caso 3
|
215
|
31
|
7
|
12
|
66
|
Para acceder a la información general sobre este curso y al listado completo de entregas pulsa en este link: Ver curso completo.
Para hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, abiertos a cualquier persona independientemente de su nivel de conocimiento.