Está en la página 1de 5

Instituto Tecnolgico Superior de Huichapan Estructura de Datos

Complejidad en el tiempo, espacio y eficiencia de los algoritmos


Los mtodos directos tienen la caracterstica de que su implementacin es relativamente sencilla y son fciles de comprender, aunque son ineficientes cuando N el nmero de elementos del arreglo- es de tamao mediano o grande. Los mtodos logartmicos, por su parte, son ms complejos que los directos. Su elaboracin es ms sofisticada y, al ser menos intuitivos, resultan ms difciles de entender. Sin embargo, son ms eficientes ya que requieren de menos comparaciones y movimientos para ordenar sus elementos.

Ordenacin por intercambio directo (burbuja)


Es preciso sealar que es quizs el mtodo ms ineficiente. El mtodo de intercambio directo puede trabajar de dos maneras diferentes: llevando elementos ms pequeos hacia la parte izquierda del arreglo o trasladando los elementos ms grandes hacia su parte derecha. La idea bsica de este algoritmo consiste en comparar pares de elementos adyacentes e intercambiarlos entre s hasta que todos se encuentren ordenados. Se realizan (n1) pasadas transportando en cada una de ellas el menor o mayor de elementos a su posicin ideal. Al final de las (n-1) pasadas los elementos del arreglo estarn ordenados. El tiempo necesario para ejecutar el algoritmo de la burbuja es proporcional a , donde n es el nmero de elementos del arreglo. ,

Ordenacin por el mtodo de la sacudida (shaker sort)


De todos los mtodos mejorados y logartmicos, es uno de los ms complejos. Los estudios que se han efectuado sobre el mtodo de la sacudida demuestran que en l solo se pueden reducir las dobles comparaciones entre claves, pero se debe recordar que la operacin de intercambio es una tarea ms complicada y costosa que la de comparacin.

Eduardo Zamudio Zamudio

Instituto Tecnolgico Superior de Huichapan Estructura de Datos

Ordenacin por insercin directa (mtodo de la baraja)


La idea central de este algoritmo consiste en insertar un elemento del arreglo en su parte izquierda, que ya se encuentra ordenada. Este proceso se repite desde el segundo hasta el n-simo elemento. El tiempo para ejecutar el algoritmo de insercin directa es proporcional a , donde n es el nmero de elementos del arreglo. ,

A pesar de ser un mtodo ineficiente, es recomendable slo cuando n es pequeo.

Ordenacin por el mtodo de insercin binaria


El mtodo de ordenacin por insercin binaria es una mejora del mtodo de insercin directa. La mejora consiste en realizar una bsqueda binaria en lugar de una bsqueda secuencial, para insertar un elemento en la parte izquierda del arreglo, que ya se encuentra ordenado. Se repite hasta el n-simo elemento. El tiempo de ejecucin de ste algoritmo es proporcional a , .

Ordenacin por el mtodo de seleccin directa


En el mtodo de seleccin directa se debe considerar que el nmero de comparaciones entre elementos es independiente de la disposicin inicial de stos en el arreglo. En la primera pasada se realizan (n-1) comparaciones, en la segunda pasada (n-2) comparaciones y as sucesivamente hasta 2 y 1 comparaciones en la penltima y ltima pasadas, respectivamente. Por lo tanto:

Respecto del nmero de intercambios, siempre ser

, entonces:

As, por ejemplo, si se tiene que ordenar un arreglo que contiene 500 elementos, Eduardo Zamudio Zamudio

Instituto Tecnolgico Superior de Huichapan Estructura de Datos se efectuarn 124 750 comparaciones y 499 movimientos. El tiempo de ejecucin es proporcional a , .

Mtodo de Shell
En 1969, Pratt descubri que el tiempo de ejecucin del algoritmo es del orden de . Unas pruebas exhaustivas realizadas para obtener la mejor secuencia de intervalos cuando el nmero de elementos del arreglo es igual a 8 arrojaron como resultado que la mejor secuencia corresponde a u intervalo de 1. Estas pruebas tambin determinaron que el menor nmero de movimientos se registraba con la secuencia 3, 2, 1. Los estudios de Peterson y Russell, en la Universidad de Stanford, en 1971, muestran que las mejores secuencias para valores de N comprendidos entre 100 y 60 000 son:

Donde

Mtodo quicksort
El mtodo quicksort es el ms rpido de ordenacin interna que existe en la actualidad. Se puede afirmar que el tiempo promedio de ejecucin del algoritmo es proporcional a , . En el peor caso, el tiempo de ejecucin es proporcional a , .

Eduardo Zamudio Zamudio

Instituto Tecnolgico Superior de Huichapan Estructura de Datos

Mtodo del montculo (heapsort)


Es importante tener en cuenta la fase de construccin del montculo como la fase donde se elimina repetidamente su raz, para finalmente obtener el arreglo ordenado. En la fase de construccin del montculo los elementos mayores se cargan hacia la izquierda y en la fase de eliminacin de la raz los elementos mayores se cargan hacia la derecha. A pesar de ello ste es un mtodo muy rpido, sobre todo para valores grandes de N. Los estudios realizados al respecto demuestran que el tiempo de ejecucin del algoritmo en ambas fases es de . Aunque el mtodo del montculo puede ser un poco ms lento que el quicksort (se estima en 70%), es el nico que garantiza que aun en el peor caso su tiempo de ejecucin es proporcional a , .

Arreglos anidados
El mtodo de arreglos anidados consiste en que cada elemento del arreglo tenga otro arreglo, en el cual los elementos que colisionan. Si bien la solucin parece ser sencilla, es claro que resulta ineficiente. Al trabajar con arreglos se depende del espacio que se haya asignado a stos, lo cual conduce a un nuevo problema difcil de solucionar: elegir un tamao adecuado de arreglo que permita un equilibrio entre el costo de memoria y el nmero de valores que colisionan- que pudiera almacenar.

Eduardo Zamudio Zamudio

Instituto Tecnolgico Superior de Huichapan Estructura de Datos

Encadenamiento
El mtodo de encadenamiento consiste en que cada elemento del arreglo tenga un apuntador a una lista ligada, al cual se ir generando y almacenar los valores que colisionan. Es el mtodo ms eficiente debido al dinamismo propio de las listas. Como desventajas del mtodo de encadenamiento se menciona el hecho de que ocupa espacio adicional al de la tabla y que exige el manejo de listas ligadas.

Eduardo Zamudio Zamudio