Ordenamiento Rápido

Es una variante del método para Ordenamiento Concha Marina; Recibe este nombre porque excluye muy rápido a los elementos consecutivos, ya ordenados, del conjunto de valores.

ATENCIÓN: En este diagrama se utilizan los símbolos matemáticos

Techo de un nuacute;mero real.
El techo de x, denotado ⌈x⌉, es el mínimo entero mayor o igual que x.

Piso de un nuacute;mero real.
El piso de x, denotado ⌊x⌋, es el míximo entero menor o igual que x.
Diagrama de Flujo que explica el Ordenamiento Rápido

El Ordenamiento se efectua de la sig. forma
Valores Iniciales: n = 6, fin = "N", x = {3, 21, 9, 8, 2, 1}
m = n = 6
m =m ÷ 2 6 ÷ 2 = 3

¿Es fin = "S"? No ¿Es m = 0? No

j = 1
p = n - m p = 6 - 3 = 3
i = j i = 1
l = i + m l = 1 + 3 = 4

x = {3, 21, 9, 8, 2, 1}
¿Es x(i)x(l)? Sí Sumar 1 a j j = 2
                              ¿Es j > p? No

i = j i = 2
l = i + m l = 2 + 3 = 5

x = {3, 21, 9, 8, 2, 1}
¿Es x(i)x(l)? No Intercambiar valor entre x(i), x(l) x = {3, 2, 9, 8, 21, 1}
                               Substraer m de i i = 2 - 3 = -1
                               ¿Es i > 0? No

i = j i = 2
l = i + m l = 2 + 3 = 5

x = {3, 2, 9, 8, 21, 1}
¿Es x(i)x(l)? Sí Sumar 1 a j j = 3
                              ¿Es j > p? No

i = j i = 3
l = i + m l = 3 + 3 = 6

x = {3, 2, 9, 8, 21, 1}
¿Es x(i)x(l)? No Intercambiar valor entre x(i), x(l) x = {3, 2, 1, 8, 21, 9}
                               Substraer m de i i = 3 - 3 = 0
                               ¿Es i > 0? No

i = j i = 3
l = i + m l = 3 + 3 = 6

x = {3, 2, 1, 8, 21, 9}
¿Es x(i)x(l)? Sí Sumar 1 a j j = 4
                              ¿Es j > p? Sí

m = m ÷ 2 3 ÷ 2 = 1.5 1

¿Es fin = "S"? No ¿Es m = 0? No

j = 1
p = n - m p = 6 - 1 = 5
i = j i = 1
l = i + m l = 1 + 1 = 2

x = {3, 2, 1, 8, 21, 9}
¿Es x(i)x(l)? No Intercambiar valor entre x(i), x(l) x = {2, 3, 1, 8, 21, 9}
                               Substraer m de i i = 1 - 1 = 0
                               ¿Es i > 0? No

i = j i = 1
l = i + m l = 1 + 1 = 2

x = {2, 3, 1, 8, 21, 9}
¿Es x(i)x(l)? Sí Sumar 1 a j j = 2
                              ¿Es j > p? No

i = j i = 2
l = i + m l = 2 + 1 = 3

x = {2, 3, 1, 8, 21, 9}
¿Es x(i)x(l)? No Intercambiar valor entre x(i), x(l) x = {2, 1, 3, 8, 21, 9}
                               Substraer m de i i = 2 - 1 = 1
                               ¿Es i > 0? Sí Sumar 1 a j j = 3
                               ¿Es j > p? No

i = j i = 3
l = i + m l = 3 + 1 = 4

x = {2, 1, 3, 8, 21, 9}
¿Es x(i)x(l)? Sí Sumar 1 a j j = 4
                              ¿Es j > p? No

i = j i = 4
l = i + m l = 4 + 1 = 5

x = {2, 1, 3, 8, 21, 9}
¿Es x(i)x(l)? Sí Sumar 1 a j j = 5
                              ¿Es j > p? No

i = j i = 5
l = i + m l = 5 + 1 = 6

x = {2, 1, 3, 8, 21, 9}
¿Es x(i)x(l)? No Intercambiar valor entre x(i), x(l) x = {2, 1, 3, 8, 9, 21}
                               Substraer m de i i = 5 - 1 = 4
                               ¿Es i > 0? Sí Sumar 1 a j j = 6
                               ¿Es j > p? Sí

m =m ÷ 2 1 ÷ 2 = 0.5 0

¿Es fin = "S"? No ¿Es m = 0? Sí m = 1
                                                         fin = "S"

j = 1
p = n - m p = 6 - 1 = 5
i = j i = 1
l = i + m l = 1 + 1 = 2

x = {2, 1, 3, 8, 9, 21}
¿Es x(i)x(l)? No Intercambiar valor entre x(i), x(l) x = {1, 2, 3, 8, 9, 21}
                               Substraer m de i i = 1 - 1 = 0
                               ¿Es i > 0? No

i = j i = 1
l = i + m l = 1 + 1 = 2

x = {1, 2, 3, 8, 9, 21}
¿Es x(i)x(l)? Sí Sumar 1 a j j = 2
                              ¿Es j > p? No

i = j i = 2
l = i + m l = 2 + 1 = 3

x = {1, 2, 3, 8, 9, 21}
¿Es x(i)x(l)? Sí Sumar 1 a j j = 3
                              ¿Es j > p? No

i = j i = 3
l = i + m l = 3 + 1 = 4

x = {1, 2, 3, 8, 9, 21}
¿Es x(i)x(l)? Sí Sumar 1 a j j = 4
                              ¿Es j > p? No

i = j i = 4
l = i + m l = 4 + 1 = 5

x = {1, 2, 3, 8, 9, 21}
¿Es x(i)x(l)? Sí Sumar 1 a j j = 5
                              ¿Es j > p? No

i = j i = 5
l = i + m l = 5 + 1 = 6

x = {1, 2, 3, 8, 9, 21}
¿Es x(i)x(l)? Sí Sumar 1 a j j = 6
                              ¿Es j > p? Sí

m =m ÷ 2 1 ÷ 2 = 0.5 0

¿Es fin = "S"? Sí