Академический Документы
Профессиональный Документы
Культура Документы
Debido a que las estructuras de datos son utilizadas para almacenar informacin, para poder
recuperar esa informacin de manera eficiente es deseable que aquella est ordenada. Existen
varios mtodos para ordenar las diferentes estructuras de datos bsicas.
En general los mtodos de ordenamiento no son utilizados con frecuencia, en algunos casos slo
una vez. Hay mtodos muy simples de implementar que son tiles en los casos en dnde el nmero
de elementos a ordenar no es muy grande (ej, menos de 500 elementos). Por otro lado, hay mtodos
sofisticados, ms difciles de implementar pero que son ms eficientes en cuestin de tiempo de
ejecucin.
Los mtodos sencillos por lo general requieren de aproximadamente n x n pasos para ordenar n
elementos.
Los mtodos simples son: insertion sort (o por insercin directa) selection sort, bubble sort, y
shellsort, en dnde el ltimo es una extensn al insertion sort, siendo ms rpido. Los mtodos ms
complejos son el quick-sort, el heap sort, radix y address-calculation sort. El ordenar un grupo de
datos significa mover los datos o sus referencias para que queden en una secuencia tal que
represente un orden, el cual puede ser numrico, alfabtico o incluso alfanumrico, ascendente o
descendente.
Se ha dicho que el ordenamiento puede efectuarse moviendo los registros con las claves. El mover
un registo completo implica un costo, el cual se incrementa conforme sea mayor el tamao del
registro. Es por ello que es deseable evitar al mximo el movimiento de los registros. Una alternativa
es el crear una tabla de referencias a los registros y mover las referencias y no los datos. A
continuacin, se mostrarn los mtodos de ordenamiento empezando por el ms sencillo y
avanzando hacia los ms sofisticados
La eficiencia de los algoritmos se mide por el nmero de comparaciones e intercambios que tienen
que hacer, es decir, se toma n como el nmero de elementos que tiene el arreglo a ordenar y se dice
que un algoritmo realiza O(n2) comparaciones cuando compara n veces los n elementos, n x n = n2.
ORDENAMIENTO DE BURBUJA
Ordenamiento de Burbuja
PSEUDOCDIGO (ALGORITMO)
procedure bubblesort(a1, , an : nmeros reales con n >= 2)
for i := 1 to n 1
for j := 1 to n i
if aj > aj+1 then intercambiar
a
j
and aj+1
{a1, , an est en orden creciente}
EJEMPLO
Los pasos de este algoritmo estn ilustrados en la figura de arriba. Empezando por comparar los dos
primeros elementos 3 y 2. Porque 3 > 2, intercambiando 3 y 2, produciendo la lista 2, 3, 4, 1, 5.
Porque 3 < 4, continua comparando 4 y 1. Porque 4 > 1, intercambiando 1 y 4, producindola lista 2,
3, 1, 4, 5. Porque 4 < 5, el primer paso est completo. El primer paso garantiza que el elemento ms
grande, 5, est en la correcta posicin.
El segundo paso empieza comparando2 y 3. Porque estos estn en correcto orden, 3 y 1 son
comparados. Porque 3 > 1, estos nmeros son intercambiados, produciendo 2, 1, 3, 4, 5. Porque 3 <
4, estos nmeros estn en orden correcto. No es necesario hacer ms comparaciones en este paso,
porque 5 est en la correcta posicin. El segundo paso garantiza que los dos elementos ms
grandes, 4 y 5, estn en la posicin correcta.
El tercer paso empieza comparando 2 y 1. Estos son intercambiados porque 2 > 1, produciendo 1, 2,
3, 4, 5. Porque 2 < 3, estos dos elementos estn en la posicin correcta. No es necesario hacer ms
comparaciones en este paso porque 4 y 5 estn ubicados en la posicin correcta. El tercer paso
garantiza que los tres elementos ms grandes 3, 4 y 5, estn en su posicin correcta.
El cuarto paso consiste de una comparacin entre 1 y 2. Porque 1 < 2 estos elementos estn en
orden correcto. As termina el ordenamiento de burbuja.