Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: karen1213 en 24 de Noviembre 2014, 20:59

Título: pseudocodigo para ordenar una lista de números de mayor a menor
Publicado por: karen1213 en 24 de Noviembre 2014, 20:59
Hola espero que me puedan ayudar con este examen, por favor

Analice el siguiente pseudo-código:

Para J = 1 hasta N
    Para K = 0 hasta N – J
         Si A (K) > A (K+1) hacer el intercambio de esos dos elementos

Si N=8 y dada la siguiente lista como entrada al anterior pseudocódigo:

100, 20, 4, 8, 7, 23, 85, 37

Escribe el resultado de la ejecución del pseudocódigo
Título: Re:pseudocodigo para ordenar una lista de números de mayor a menor
Publicado por: Ogramar en 24 de Noviembre 2014, 22:22
Hola, en este curso tienes explicada la ordenación de números, bucles, etc.: http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=28&Itemid=59

Para este caso en concreto tenemos:

Comienza el bucle externo con j=1 y el bucle interno con k=0 hasta 7

A(0)=100, A(1)=20, se cumple a(k) > a(k+1) por lo que a(0)=20, A(1)=100


Ahora k=1

A(1)=100, a(2)=4, se cumple a(k) > a(k+1) por lo que a(1) = 4, a(2)=100


Ahora k=2

a(2)=100, a(3)= 8, se cumple a(k) > a(k+1) por lo que a(2)=8, a(3)=100

Ahora k=3 ... a(3)=7, a(4)=100

Ahora k=4 ... a(4)=23, a(5)=100

Ahora k=5 ... a(5)=85, a(6)=100

Ahora k=7 ... a(6)=37, a(7)=100

Fin del bucle interno. Ahora j = 2 y k=0 hasta 6

Ahora k=0, a(0)=20, a(1)=4 por lo que a(0)=4, a(1)=20

Ahora k=1, a(1)=20, a(2)=8 por lo que a(1)=8, a(2)=20

Ahora k=2, a(2)=20, a(3)=7 por lo que a(2)=7, a(3)=20

Ahora k=3, a(3)=20, a(4)=23 NO CUMPLE

Ahora k=4, a(4)=23, a(5)=85 NO CUMPLE

Ahora k=5, a(5)=85, a(6)= 37 por lo que a(5)=37, a(6) = 85

...

Si seguimos ejecutando el algoritmo vemos que:

los números más grandes llegan a la parte derecha de la lista y los más pequeños se quedan en la parte izquierda.

En cada iteración del bucle externo se coloca el elemento más grande a la derecha de la lista

... finalmente obtenemos la lista ordenada de menor a mayor:

El resultado será: 4, 7, 8, 20, 23, 37, 85, 100

Salu2