Informe Algoritmos
Geovanny Cadena
Miguel Caldern
INTRODUCCION
Los algoritmos de ordenamiento nos permite, como su nombre lo dice, ordenar. En
este caso, nos servirn para ordenar vectores o matrices con valores asignados
aleatoriamente. Nos centraremos en los mtodos ms populares, analizando la
cantidad de comparaciones que suceden, el tiempo que demora y revisando el cdigo,
escrito en Java, de cada algoritmo.
Este informe nos permitir conocer ms a fondo cada mtodo distinto de
ordenamiento, desde uno simple hasta el ms complejo. Se realizaran comparaciones
en tiempo de ejecucin, pre-requisitos de cada algoritmo, funcionalidad, alcance, etc.
Principales algoritmos de Ordenamiento:
Mtodo de la Burbuja
El mtodo de la burbuja es uno de los ms simples, es tan fcil como comparar todos
los elementos de una lista contra todos, si se cumple que uno es mayor o menor a otro,
entonces los intercambia de posicin.
Por ejemplo, imaginemos que tenemos los siguientes valores:
5 6 1 0 3
Lo que hara una burbuja simple, seria comenzar recorriendo los valores de izq. A
derecha, comenzando por el 5. Lo compara con el 6, con el 1, con el 0 y con el 3, si es
mayor o menor (dependiendo si el orden es ascendente o descendente) se
intercambian de posicin. Luego continua con el siguiente, con el 6, y lo compara con
todos los elementos de la lista, esperando ver si se cumple o no la misma condicin
que con el primer elemento. as, sucesivamente, hasta el ltimo elemento de la lista:
INSERCION Y SELECCIN
El bucle principal de la ordenacin por insercin va examinando sucesivamente todos
los elementos de la matriz desde el segundo hasta el n-simo, e inserta cada uno en el
lugar adecuado entre sus predecesores dentro de la matriz.
La ordenacin por seleccin funciona seleccionando el menor elemento de la matriz y
llevndolo al principio; a continuacin selecciona el siguiente menor y lo pone en la
segunda posicin de la matriz y as sucesivamente
METODO RAPIDO (quicksort)
Sin duda, este algoritmo es uno de los ms eficientes. Este mtodo es el ms rpido
gracias a sus llamadas recursivas, basndose en la teora de divide y vencers.
Lo que hace este algoritmo es dividir recursivamente el vector en partes iguales,
indicando un elemento de inicio, fin y un pivote (o comodn) que nos permitir
segmentar nuestra lista. Una vez dividida, lo que hace, es dejar todos los mayores que
el pivote a su derecha y todos los menores a su izq. Al finalizar el algoritmo, nuestros
elementos estn ordenados.
Por ejemplo, si tenemos 3 5 4 8 bsicamente lo que hace el algoritmo es dividir la lista
de 4 elementos en partes iguales, por un lado 3, por otro lado 4 8 y como comodn o
pivote el 5. Luego pregunta, 3 es mayor o menor que el comodn? Es menor, entonces
lo deja al lado izq. Y como se acabaron los elementos de ese lado, vamos al otro lado.
4 Es mayor o menor que el pivote? menor, entonces lo tira a su izq. Luego pregunta
por el 8, al ser mayor lo deja donde est, quedando algo as:
3 4 5 8
En esta figura se ilustra de mejor manera un vector con mas elementos, usando como
pivote el primer elemento:
El algoritmo es el siguiente: