Ventajas y desventajas de la clasificación por burbujas

Los programadores que pasan del desarrollo de PC y web a la codificación para dispositivos móviles o sistemas integrados descubren que dedican más tiempo a seleccionar y codificar sus propias estructuras de datos y algoritmos. Con menos memoria y almacenamiento de datos limitado, no hay espacio para bibliotecas o marcos prediseñados. Entonces, para aquellos que necesitan escribir sus propias rutinas de clasificación, aquí hay algunas consideraciones sobre cómo elegir la clasificación de burbuja humilde.

Fondo

La ordenación de burbujas es un algoritmo simple que ordena una lista de elementos en la memoria. Dada una matriz, el código compara repetidamente cada par de elementos adyacentes y los intercambia si no están en orden. El proceso se repite hasta que no se produzcan más intercambios. Si fuera posible ver la matriz mientras la clasificación está en curso, los valores bajos "burbujearían" hacia arriba mientras que los valores grandes se hundirían hasta el fondo. Aquí está el código relevante en Visual Basic 2010:

Mientras swap =True swap =False For i =0 To tbl.length - 2 If tbl(i)> tbl(i + 1) Entonces tmp =tbl(i) tbl(i) =tbl(i + 1) tbl(i + 1) =tmp swap =True End If Next End While

Cuándo elegir la clasificación de burbujas

Este algoritmo tiene varias ventajas. Es simple de escribir, fácil de entender y solo requiere unas pocas líneas de código. Los datos se ordenan en su lugar, por lo que hay poca sobrecarga de memoria y, una vez ordenados, los datos están en la memoria, listos para su procesamiento. La principal desventaja es la cantidad de tiempo que lleva ordenar. El tiempo medio aumenta casi exponencialmente a medida que aumenta el número de elementos de la tabla. Diez veces la cantidad de elementos requiere casi cien veces más tiempo para ordenar.

Otras clasificaciones de matrices

Los algoritmos de clasificación varían en complejidad, velocidad y sobrecarga. El tipo burbuja es el menos complejo pero también uno de los más lentos. Otras ordenaciones basadas en matrices, como la ordenación por inserción y la ordenación por intercambio, son un poco más rápidas pero requieren más código (consulte las referencias a continuación). La principal ventaja de las ordenaciones basadas en arreglos es que usan menos código y ocupan la menor cantidad de memoria de trabajo. Considere estos tipos para arreglos simples con menos de unos pocos cientos de elementos.

Algoritmos de ordenación compleja

Los conjuntos de datos más grandes requieren un código más complejo y más memoria. La ordenación rápida y la ordenación en montón dividen y copian los conjuntos de datos para optimizar el número de comparaciones. La ordenación rápida divide continuamente la lista y luego la vuelve a armar en orden ordenado. La ordenación del montón copia los datos en una estructura de árbol y luego atraviesa el árbol para volver a copiar los datos en orden. Ambos son rápidos y eficientes, pero requieren más código y mucho más almacenamiento funcional. Elija estos algoritmos para grandes conjuntos de datos.