Algoritmos de Ordenamiento

 

Generalmente, se considera ordenar (clasificar) como el proceso de reorganización de un conjunto dado de objetos en una secuencia especificada. El objetivo de este proceso es facilitar la búsqueda posterior de los elementos del conjunto ordenado. El tema de la ordenación es idóneo para mostrar como los problemas se pueden resolver utilizando una gran variedad de algoritmos, todos con el mismo objetivo, pero cada uno presentando ciertas ventajas sobre los otros.

Existe desde el método mas simple, como el Bubblesort (o Método Burbúja), que son simples iteraciones, hasta el Quicksort (Método Rápido), que al estar optimizado usando recursion, su tiempo de ejecución es menor y es más efectivo

Metodos Iterativos

Estos métodos son simples de entender y de programar ya que son iterativos, simples ciclos y sentencias que hacen que el vector pueda ser ordenado. Dentro de los Algoritmos iterativos encontramos:

– Burbuja
– Inserción
– Selección
– Shellsort

Metodos Recursivos

Estos métodos son aún mas complejos, requieren de mayor atención y conocimiento para ser entendidos. Son rápidos y efectivos, utilizan generalmente la técnica Divide y vencerás, que consiste en dividir un problema grande en varios pequeños para que sea más fácil resolverlos. Mediante llamadas recursivas a si mismos, es posible que el tiempo de ejecución y de ordenación sea más optimo. Dentro de los algoritmos recursivos encontramos:

– Ordenamiento por Mezclas (merge)
– Ordenamiento Rápido (quick)

Los algoritmos de ordenamiento pueden ser divididos en dos clases de acuerdo a la complejidad de los mismos. La complejidad del algoritmo se expresa según la notación Big-O.
“Por ejemplo, O(n) significa que el algoritmo tiene una complejidad lineal. En otras palabras, toma 10 veces más tiempo en operar un set de 100 datos que en hacerlo con un set de 10 items. Si la complejidad fuera O(n2) entonces tomaría 100 veces más tiempo en operar 100 items que en hacerlo con 10.”

Deja un comentario