Los programadores que cambian de PC y desarrollo web a 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 preconstruidos. Entonces, para aquellos que necesitan escribir sus propias rutinas de clasificación, aquí hay algunas consideraciones sobre la elección del tipo de burbuja baja.

Antecedentes

La clasificación de burbujas es un algoritmo simple que clasifica 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 ocurran más intercambios. Si fuera posible ver la matriz mientras la ordenación está en progreso, los valores bajos "burbujearían" hacia arriba mientras que los valores grandes se hundirían hacia abajo. Aquí está el código relevante en Visual Basic 2010:

While 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 el tipo de burbuja

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 promedio aumenta casi exponencialmente a medida que aumenta el número de elementos de la tabla. Diez veces la cantidad de elementos tarda casi cien veces más en clasificarse.

Otros tipos de matriz

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

Algoritmos de ordenamiento complejo

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 copiar los datos nuevamente en orden. Ambos son rápidos y eficientes, pero requieren más código y mucho más almacenamiento de trabajo. Elija estos algoritmos para grandes conjuntos de datos.