Las ventajas y desventajas de los algoritmos de ordenamiento

Por joe wandy
Las ventajas y desventajas de los algoritmos de ordenamiento
Thinkstock/Comstock/Getty Images

Ordenar un conjunto de elementos de una lista es una tarea que se presenta con frecuencia en la programación. A menudo, un ser humano puede realizar esta tarea de forma intuitiva. Sin embargo, un programa de computadora debe seguir una secuencia de instrucciones exactas para lograrlo. Esta secuencia de instrucciones se llama algoritmo. Un algoritmo de ordenamiento es un método que puede utilizarse para colocar una lista de elementos en una secuencia ordenada. La secuencia de ordenamiento está determinada por una clave. Existen varios algoritmos de ordenamiento y difieren en cuanto a su eficiencia y rendimiento. Algunos algoritmos importantes y conocidos son el ordenamiento de burbuja, ordenamiento por selección, por inserción y el de ordenamiento rápido.

Ordenamiento de burbuja

El algoritmo de ordenación de burbuja funciona intercambiando repetidamente los elementos adyacentes que no están en orden, hasta que toda la lista de elementos esté en secuencia. De esta manera, los elementos pueden observarse como formando burbujas en la lista según sus valores claves.

La ventaja principal del ordenamiento de burbuja es que es muy popular y fácil de implementar. Además, en este tipo de ordenamiento, los elementos se intercambian sin utilizar almacenamiento temporal adicional, de modo que el espacio requerido es el mínimo. La principal desventaja del ordenamiento de burbuja es el hecho de que no se comporta adecuadamente con una lista que contenga un número grande de elementos. Esto se debe a que este ordenamiento requiere n al cuadrado de pasos de procesamiento para cada n número de elementos a ser ordenados. Como tal, este tipo de ordenamiento es más apropiado para la enseñanza académica pero no para aplicaciones de la vida real.

Ordenamiento por selección

El ordenamiento por selección funciona pasando repetidamente por la lista de elementos, cada vez seleccionando un elemento según su ordenamiento y colocándolo en la posición correcta en la secuencia.

La principal ventaja de este tipo de ordenamiento es que funciona bien con una lista pequeña. Además, debido a que es un algoritmo de ordenamiento en el lugar, no hay almacenamiento temporal adicional más allá de lo que se necesita para mantener la lista original. La principal desventaja de este tipo de ordenamiento es su poca eficiencia cuando se trata con una enorme lista de elementos. Al igual que el ordenamiento de burbuja, este método requiere n al cuadrado de número de pasos para ordenar n elementos. Además, su rendimiento es fácilmente influenciado por el orden inicial de los elementos antes del proceso de ordenamiento. Debido a esto, el ordenamiento por selección sólo es apto para una lista de pocos elementos que estén en orden aleatorio.

Ordenamiento por inserción

El ordenamiento por inserción analiza repetidamente la lista de elementos, cada vez insertando el elemento en la secuencia desordenada en su posición correcta.

La principal ventaja de este tipo de ordenamiento es su simplicidad. También exhibe un buen rendimiento cuando se trabaja con una pequeña lista. El ordenamiento por inserción es un algoritmo de ordenamiento en el lugar, de modo que requiere de espacio mínimo. Su desventaja es que no funciona tan bien como otros algoritmos mejores de ordenamiento. Con n al cuadrado pasos requeridos para cada n elemento a ser ordenado, este algoritmo no funciona bien con una lista grande. Por lo tanto, este sólo es útil cuando se ordena una lista de pocos elementos.

Ordenamiento rápido

El ordenamiento rápido funciona según el principio de divide y vencerás. Primero se divide la lista de elementos en dos sublistas, basado en un elemento pivote. Todos los elementos de la primera sublista se acomodan para ser menores que el pivote, mientras que todos los elementos en la segunda sublista se acomodan para ser mayores que el pivote. El mismo proceso de partición y organización se realiza repetidamente en las sublistas resultantes, hasta que se ordena la lista completa de elementos.

Este tipo de ordenamiento es considerado como el mejor algoritmo de ordenamiento. Esto se debe a su importante ventaja en términos de eficiencia, debido a que es capaz de tratar con una enorme lista de elementos. Debido a que ordena en el lugar, tampoco requiere de almacenamiento adicional. El leve inconveniente de este algoritmo es que su rendimiento en el peor de los casos es similar a los rendimientos promedio del tipo de ordenamiento de burbuja, inserción o por selección. En general, este algoritmo produce el método más efectivo y mayormente usado de ordenamiento para listas de cualquier tamaño.