Ejercicio ejemplo estrategia resolución problema de programación ordenar serie de números I (CU00119A)

Resumen: Entrega nº18 del curso Bases de la programación Nivel I.
Codificación aprenderaprogramar.com: CU00119A

 

 

EJERCICIO "ORDENAR UNA SERIE DE NÚMEROS CONFORME A UNOS CONDICIONANTES"

 
Determinar el método de resolución para el problema con los criterios expuestos a continuación:

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

 

La resolución del caso 3 la veremos en la próxima entrega.

 

 

 

 

 

 

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.

¿Puedo yo aprender?

Seas o no del área informática, si quieres aprender a programar te ofrecemos una solución guiada y personalizada: realizar un curso tutorizado on-line. Con este tipo de curso, podrás aprender a programar de forma ágil y amena.

Acceder a detalles y precios de los cursos tutorizados on-line

Política sobre cookies

Utilizamos cookies propias y de terceros para ofrecerte una mejor experiencia y servicio, de acuerdo a tus hábitos de navegación.

Si continúas navegando, consideramos que aceptas su uso. Puedes obtener más información en nuestra Política de Cookies.

En Facebook!

Ahora puedes seguirnos en Facebook. Noticias, novedades y mucho más ¡Te esperamos!

RANKING APR2+

Ranking de lenguajes y entornos de programación aprenderaprogramar.com
 

JULIO - AGOSTO 2017

1. Java / J2EE
2. Entornos Oracle
3. Entornos SQL Server
4. JavaScript, jQuery
5. .NET, C#
6. HTML, CSS
7. Android, iOS
8. Php, MySql


Acceder a detalles sobre el ranking de programación aprenderaprogramar.com

FOROS APR2+

Pregunta, responde, consulta, lee, intercambia...

Participa!!! Entra en los foros aprenderaprogramar.com.

             Copyright 2006-2017 aprenderaprogramar.com                La web abierta a cualquier persona interesada en la programación