Вы находитесь на странице: 1из 17

Ordenamiento

burbuja
Una manera simple de expresar el
ordenamiento de burbuja
en pseudocdigo es la siguiente:

Este algoritmo realiza el ordenamiento o
reordenamiento de una lista a de n valores,
en este caso de n trminos numerados
del 0 al n-1; consta de dos bucles anidados,
uno con el ndice i, que da un tamao menor
al recorrido de la burbuja en sentido inverso
de 2 a n, y un segundo bucle con el ndice j,
con un recorrido desde 0 hasta n-i, para
cada iteracin del primer bucle, que indica
el lugar de la burbuja.
Para comprender el
funcionamiento, veamos un
ejemplo sencillo:
Tenemos una lista de nmeros que hay que ordenar:
A={55,86,48,16,82}
Podemos ver que la lista que tiene cinco trminos, luego:
n=5
El ndice i har un recorrido de 2 hasta n:
Para i2 hasta n hacer
que en este caso ser de 2 a 5. Para cada uno de los
valores de i, j tomar sucesivamente los valores
de 0 hasta n-i:
Para j0 hasta n-1 hacer
Para cada valor de j, obtenido en ese orden, se compara
el valor del ndice j con el siguiente:
Si a(j)>a(j+1) entonces
Si el trmino j es mayor que el trmino j+1, los valores se
permutan, en caso contrario se contina con la iteracin.

Para el caso del ejemplo, tenemos que:
N=5
Para la primera iteracin del primer bucle:
i=2
y j tomar los valores de 0 hasta 3:
para j0 hasta 3
Cuando j vale 0, se comparan a0 a1 , el 55 y el 86,
dado que 55 < 86, no se permuta el orden.
Ahora j vale 1 y se comparan a1 a2, el 86 y el 48.
Como 86 > 48, se permutan, dando lugar a una
nueva lista.

Se repite el proceso hasta que j valga 3, dando lugar a
una lista parcialmente ordenada. Podemos ver que el
trmino de mayor valor est en el lugar ms alto.
Ahora i vale 3, y j har un recorrido de 0 a 2.
Primero j vale 0, se comparan , el 55 y el 48. Como 55 > 48
se permutan dando lugar a la nueva lista.
Para j = 1 se compara el 55 con el 16 y se cambian de
orden.
Para j = 2 se compara el 55 y el 82 y se dejan como estn,
finalizando el bucle con una lista mejor ordenada. Puede
verse que los dos valores ms altos ya ocupan su lugar. No
se ha realizado ninguna comparacin con el trmino
cuarto, dado que ya se sabe que despus del primer ciclo
es el mayor de la lista.

El algoritmo consiste en comparaciones sucesivas de
dos trminos consecutivos ascendiendo de abajo a
arriba en cada iteracin, como la ascensin de las
burbujas de aire en el agua, de ah el nombre del
procedimiento. En la primera iteracin el recorrido
ha sido completo, en el segundo se ha dejado l
ltimo trmino, al tener ya el mayor de los valores, en
los sucesivos s ira dejando de realizar las ltimas
comparaciones, como se puede ver.
Ahora ya i vale 4 y j recorrer los valores de 0 a 1.
Cuando j vale 0, se comparan , esto es, el 48 y el 16.
Dado que 48 es mayor que 16 se permutan los
valores, dando lugar a una lista algo ms ordenada
que la anterior. Desde esta nueva
ordenacin, j pasa a valer 1, con lo que se
comparan los trminos el 48 y el 55 que quedan en
el mismo orden.

En este caso la burbuja ha ascendido menos que en
los casos anteriores, y la lista est ya ordenada, pero
el algoritmo tendr que completarse, realizando una
ltima iteracin.
Hay que tener en cuenta que el bucle realiza un
nmero fijo de repeticiones y para finalizar tendrn
que completarse, aun en el caso extremo, de que la
lista estuviera previamente ordenada.
Por ltimo i vale 5 y j solo puede vale 0, con lo que
slo se realizar una comparacin de el 16 y el 48,
que ya estn ordenados y se dejan igual.
Los bucles finalizan y tambin el procedimiento,
dejando la lista ordenada.

Quicksort
u
Ordenamiento Rpido
Este algoritmo esta basado en la tcnica divide y vencers
(consiste en dividir el problema en pequeos sub-problemas
mas sencillos para luego estos ser resueltos con un calculo
mas sencillo) as crearemos arreglos mas pequeos para
ordenar estos.
Los pasos para realizar este algoritmo son los siguientes:


1) Seleccionar el valor del arreglo como pivote, es decir un
numero con el cual todos los elementos van a ser
comparados.

2) se realizan dos bsquedas: una de izquierda a derecha,
buscando un elemento mayor que el pivote, y otra de
derecha a izquierda, buscando un elemento menor que el
pivote. Cuando se han encontrado los dos, se intercambian, y
se sigue realizando la bsqueda hasta que las dos bsquedas
se encuentran.

3) luego se organizan los sub-arreglos que quedaron a mano
derecha y izquierda.
Ejemplo:

Tenemos un arreglo que esta definido con los valores
{22,40,4,10,12,35} los pasos en quicksort para arreglarlo son los
siguientes:

1)se toma como pivote el numero 22 recuerden puede ser
cualquier numero.

2) la bsqueda de izquierda a derecha encuentra el valor 40 que
es mayor a pivote y la bsqueda de derecha a izquierda
encuentra el valor 35 no lo toma porque es mayor a el numero
pivote (recuerden que la bsqueda de derecha a izquierda busca
los menores) entonces continua y encuentra a 12 que es menor
que el pivote y se intercambian el resultado seria {21,12,4,10,40,35}.

3) si seguimos la bsqueda la primera encuentra el valor 40, y la
segunda el valor 10,pero ya se han cruzado, as que paramos.
Para terminar la divisin, se coloca el pivote en su lugar el numero
encontrado por la segunda bsqueda, el 10 quedando:
{10,12,4,22,40,35}.

4) ahora tenemos dividido el arreglo en dos arreglos mas
pequeos que son {10,12,4} y el {40,35}, y en ellos se repetir el
mismo proceso.
Shell Sort
El Shell Sort es un ordenamiento de disminucin
incremental, nombrado as debido a su inventor Donald
Shell. Ordena subgrupos de elementos separados K
unidades de arreglo original. El valor K es llamado
incremento. Despus de que los primeros K subgrupos
han sido ordenados, se escoge un nuevo valor de K
ms pequeo, y el arreglo es de nuevo partido entre el
nuevo conjunto de subgrupos.
Cada uno de los subgrupos mayores es ordenado y el
proceso se repite de nuevo con un valor ms pequeo
de K. En algn momento el valor de K llega a ser 1, de
tal manera que el subgrupo consiste de todo el arreglo
ya casi ordenado.

Algoritmos de
ordenamiento
internos Radix

El siguiente concepto es un algoritmo
de ordenamiento por los cuales es
uno de los mtodos que la aplicacin
ordena enteros procesndolos con
sus dgitos de forma individual.
clasificac
in de
dos tipos
El tipo de datos Radix Sort LSD
Usa tpicamente el siguiente orden:
claves cortas aparecen antes que
las claves largas, y claves de la
misma longitud son ordenadas de
forma lxico

Este tipo de dato es el de digito
de menos significativo.

El tipo de dato Radix sort MSD
usa un orden lxico, que es ideal para
la ordenacin de cadenas de
caracteres, como las palabras o
representaciones de enteros de una
longitud que es fija, los cuales se les
caracteriza como una secuencia de
letras.

Este tipo de dato es el de digito ms
significativo.

Вам также может понравиться