Sei sulla pagina 1di 19

METODOS DE

ORDENAMIENTO
Debido a que las estructuras de datos
son utilizadas para almacenar
información, para poder recuperar esa
información de manera eficiente es
deseable que aquella esté ordenada.
Existen varios métodos para ordenar las
diferentes estructuras de datos básicas.
ORDENAMIENTO DE BURBUJA
La Ordenación de burbuja (Bubble Sort en inglés) es un
sencillo algoritmo de ordenamiento.
Funciona revisando cada elemento de la lista que va a ser ordenada
con el siguiente, intercambiándolos de posición si están en el orden
equivocado.
Es necesario revisar varias veces toda la lista hasta que no se
necesiten más intercambios, lo cual significa que la lista está
ordenada.
Este algoritmo obtiene su nombre de la forma con la que suben por la
lista los elementos durante los intercambios, como si fueran
pequeñas "burbujas". También es conocido como el método del
intercambio directo. Dado que solo usa comparaciones para operar
elementos, se lo considera un algoritmo de comparación, siendo el
más sencillo de implementar.
ORDENAMIENTO BURBUJA BIDIMENCIONAL
(cocktail sort en inglés) es un algoritmo de ordenamiento que surge
como una mejora del algoritmo ordenamiento de burbuja.

La manera de trabajar de este algoritmo es ir ordenando al mismo


tiempo por los dos extremos del vector. De manera que tras la primera
iteración, tanto el menor como el mayor elemento estarán en sus
posiciones finales. De esta manera se reduce el número de
comparaciones aunque la complejidad del algoritmo sigue siendo O(n²).
Hacemos un recorrido ascendente (del primer elemento al último),
cogemos el primer elemento y lo comparamos con el siguiente, si el
siguiente es menor lo pasamos al puesto anterior, de esta forma al final
de la lista nos queda el mayor. Una vez terminada la serie ascendente,
hacemos un recorrido descendente (del último elemento al primero)
pero esta vez nos quedamos con los menores a los que vamos
adelantando posiciones en vez de retrasarlas como hicimos en la serie
ascendente. Repetimos las series alternativamente pero reduciendo el
ámbito en sus extremos pues ya tendremos allí los valores más bajos y
más altos de la lista, hasta que no queden elementos en la serie; en el
pseudocódigo de ejemplo: Hasta (izq > der).
ORDENAMIENTO POR INSERCION
El ordenamiento por inserción (insertion sort en inglés) es una manera muy
natural de ordenar para un ser humano, y puede usarse fácilmente para ordenar
un mazo de cartas numeradas en forma arbitraria. Requiere O(n²) operaciones
para ordenar una lista de n elementos.
Inicialmente se tiene un solo elemento, que obviamente es un conjunto ordenado.
Después, cuando hay k elementos ordenados de menor a mayor, se toma el
elemento k+1 y se compara con todos los elementos ya ordenados, deteniéndose
cuando se encuentra un elemento menor (todos los elementos mayores han sido
desplazados una posición a la derecha) o cuando ya no se encuentran elementos
(todos los elementos fueron desplazados y este es el más pequeño). En este punto
se inserta el elemento k+1 debiendo desplazarse los demás elementos.
ORDENAMIENTO SHELL
El algoritmo Shell Sort mejora el ordenamiento por
inserción comparando elementos separados por un
espacio de varias posiciones. Esto permite que un
elemento haga "pasos más grandes" hacia su posición
esperada. Los pasos múltiples sobre los datos se hacen
con tamaños de espacio cada vez más pequeños. El
último paso del Shell sort es un simple ordenamiento
por inserción, pero para entonces, ya está garantizado
que los datos del vector están casi ordenados.
VENTAJAS DESVENTAJAS
● No requiere memoria • Lento en cuanto a los
adicional. siguientes métodos
● Mejor rendimiento que el de ordenamiento.
método de inserción • Realiza numerosas
clásico. comparaciones e
● Fácil implementación. intercambios.
PASOS A SEGUIR
1. Dividir la lista de números en n=n/2 grupos de dos.
2. Clarificar cada grupo por separado, comparando las
parejas de elementos, y si no están ordenados, se
intercambian.
3. Se divide ahora la lista en la mitad de grupos (n=n/2),
y nuevamente se clasifica cada grupo por separado.
4. El algoritmo termina cuando se consigue que el
tamaño de salto sea 1.
ORDENAMIENTO POR SELECCIÓN
El Selection Sort es un algoritmo de ordenamiento que requiere
O(n^2) operaciones para ordenar una lista de n elementos.
Su funcionamiento es el siguiente:
• Buscar el mínimo elemento de la lista
• Intercambiarlo con el primero
• Buscar el mínimo en el resto de la lista
• Intercambiarlo con el segundo
ORDENAMIENTO POR CASILLEROS
Bucket Sort es un algoritmo de ordenamiento que distribuye todos los
elementos a ordenar entre un número finito de casilleros. Cada casillero sólo
puede contener los elementos que cumplan unas determinadas condiciones.

El algoritmo contiene los siguientes pasos:


1. Crear una colección de casilleros vacíos
2. Colocar cada elemento a ordenar en un único casillero
3. Ordenar individualmente cada casillero
4. devolver los elementos de cada casillero concatenados por orden
METODO RADIX
• Este ordenamiento se basa en los valores de los dígitos reales en las representaciones
de posiciones de los números que se ordenan.
• Por ejemplo el número 235 se escribe 2 en la posición de centenas, un 3 en la posición
de decenas y un 5 en la posición de unidades.
• El método más aplicado de radix, es el digito menos significativo, y se encarga
de colocar los números en una de las 10 colas que representan un digito cada
una de ella, iniciando desde la cola que controla el digito 0 hasta la cola que
controla el digito 9, en estas colas se colocan los números dependiendo del
digito que se este analizando en ese momento, hasta que termine con el
número que contenga la mayor cantidad de dígitos, en cada cambio de digito los
elementos se integran al arreglo nuevamente desde la cola 0 hasta la cola 9,
para elegir el siguiente digito de ordenamiento.
EJEMPLO
25 57 48 37 12 92 86 33
Asignamos colas basadas en Colas basadas en el
el dígito menos significativo dígito más significativo

0 0
1 1 12
2 12 92 2 25
3 33 3 33 37
4 4 48
5 25 5 57
6 86 12 92 33 25 86 57 37 48 6
7 57 37 7
8 48 8 86
9 9 92

Archivo ordenado: 12 25 33 37 48 57 86 92
Mezcla o Merge Sort
• Fue desarrollado en el año 1945 por Jonh Von Neumann
• Funcionamiento: dividir la lista desordenada en dos
sublistas de aproximadamente la mitad del tamaño.
• Ordenar
cada Sublista recursivamente aplicando el
ordenamiento por mezcla.
• Mezclar las dos sublistas en una sola lista ordenada
EJEMPLO
CUENTAS
• esun es un algoritmo de ordenamiento en el que se cuenta el número
de elementos de cada clase para luego ordenarlos
• consiste en averiguar cuál es el intervalo dentro del que están los datos
a ordenar (valores mínimo y máximo). Después se crea un vector de
números enteros con tantos elementos como valores haya en el
intervalo [mínimo, máximo], y a cada elemento se le da el valor 0 (0
apariciones).
• Trasesto se recorren todos los elementos a ordenar y se cuenta el
número de apariciones de cada elemento Por último, basta con recorrer
este vector para tener todos los elementos ordenados
2,5,3,2,7,5,3,2,2 Mínimo = 2
Máximo = 7

Recorrer la lista de números y contar elementos, debe


fijarse como el valor en la lista de entrada se usa como •Recorriendo el vector auxiliar obtenemos la lista de
índice en el vector auxiliar. números ordenada

listaValores(0) = 2
vAux(2) = 4 listaValores(1) = 2
vAux(3) = 2 listaValores(2) = 2
vAux(4) = 0 listaValores(3) = 2
listaValores(4) = 3
vAux(5) = 2 listaValores(5) = 3
vAux(6) = 0 listaValores(6) = 5
listaValores(7) = 5
vAux(7) = 1 listaValores(8) = 7

Lista ordenada = 2, 2, 2, 2, 3, 3, 5, 5, 7

Potrebbero piacerti anche