Sei sulla pagina 1di 6

DESARROLLO

METODO DE BURBUJA: este mtodo quiz es uno de los ms sencillos de comprender y uno de los
primeros que se ensean (al menos fue mi caso) pero a la vez es uno de los mas tardados, claro que
esto depender de la cantidad de nmeros y la manera que estn desordenados pero en general para una
cantidad de nmeros muy grande este algoritmo se vuelve algo lento por su complejidad. !ora
veremos la manera en c"mo funciona este algoritmo, primero tenemos nuestro arreglo de nmeros y
nos dedicaremos a !acer comparaciones e intercam#ios de posiciones.
$mpezamos comparando el numero en la posici"n % con el numero en la posici"n &, si el numero de la
posici"n & es menor que el numero de la posici"n % se intercam#ian de posici"n, despus se compara el
numero en la posici"n & con el numero en la posici"n ' y de igual manera, si este ltimo es menor se
intercam#ian los nmeros de posici"n y as( proseguimos !asta recorrer todo el arreglo de nmeros, una
vez que terminamos de recorrer el arreglo volvemos a empezar, esto es, volvemos a comparar el
numero de la posici"n % con el de la posici"n & y as( sucesivamente, y nuevamente cuando aca#emos
de recorrer todo el arreglo volvemos a empezar, esto continua !asta que recorramos el arreglo y no
intercam#iemos ningn nmero, "sea, ya !aya quedado el arreglo ordenado, como se puede perci#ir, el
peor de los casos se dar cuando tengamos que recorrer el arreglo n veces, "sea cuando lo recorramos
la misma cantidad de veces por la misma cantidad de nmeros en el arreglo, esto lo !ace un poco
ineficiente en cuanto a tiempo porque la mayor(a de las veces recorreremos el arreglo una gran cantidad
de veces antes de tener nuestros nmeros ordenados.
METODO INSERT: este mtodo es un poco ms complejo de comprender que el de #ur#uja pero al
igual que el de #ur#uja, es muy eficiente para arreglos de pequeas cantidades de nmeros, &%, '% o
quiz !asta )% o &%% como lo pudimos compro#ar en la prctica, ya que despus de esta cantidad de
nmeros este algoritmo suele demorarse demasiado comparado con otros algoritmos, veamos c"mo
funciona este mtodo, primero tenemos nuestra lista de nmeros y empezamos a comparar el primer
elemento con el segundo, si el segundo es menor lo intercam#iamos de lugar, como ya llegamos a la
posici"n % por as( decirlo pues avanzamos de posici"n, "sea, a!ora compararemos el numero de la
posici"n ' con el numero de la posici"n &, si el de la posici"n ' es menor que el de la posicion & los
intercam#iamos de lugar, y a!ora comparemos nuestro nuevo numero de la posici"n & con el de la
posici"n %, so este es menor los intercam#iamos de lugar y si no nos seguimos con los siguientes
nmeros "sea, con el numero de la posici"n * y ', nuevamente los comparamos y en caso que sea
menor los cam#iamos de lugar y luego comparamos nuestro numero con el de la posici"n &, si no fuera
menor pues as( se quede y agarramos el siguiente par de nmeros, el de la posici"n * con el numero de
la posici"n +, como podemos ver vamos ir comparando nuestro numero con el de la izquierda y luego
con el siguiente de la izquierda y si sigue siendo menor lo seguiremos comparando !asta encontrar su
lugar adecuado o en su defecto !asta compararlo con el primer elemento de la lista, estos pasos
seguimos !asta llegar a la posici"n n y compararla con la posici"n n,&, y si es menor moverlo a la
izquierda y seguir comparando, en caso contrario all( termina el algoritmo y nuestra lista de nmeros
queda ordenada.
MERGE SORT: este mtodo lo podemos catalogar como un algoritmo de los llamados divide y
vencers porque tiene en un principio la caracter(stica de dividir el programa en su#programas ms
pequeos para resolver la pro#lemtica que en nuestro caso ser el ordenamiento de nmeros, primero
dividiremos todo nuestro arreglo en pares, esto quiere decir que si tenemos un arreglo de &% elementos,
lo dividiremos formando ) pares, el numero de la posici"n % con el de la posici"n & ser el primer par,
el de la segunda con el de la tercera segundo par y as( sucesivamente, a!ora empezaremos las
comparaciones(cam#iare la pala#ra numero en la posici"n n, por carta de - conjunto). $l que sea mayor
de cada par se colocara del lado derec!o, y as( tendremos ordenados nuestros pares, a!ora
compararemos + cartas o nmeros, compararemos un par de pares por as( decirlo, agarramos nuestros '
conjuntos de dos cartas y proseguimos a comparar de la siguiente manera, primero comparamos los
dos nmeros que tenemos del lado izquierdo, "sea los menores de cada conjunto y el menor lo
colocamos en otro conjunto que contendr las + cartas de los dos conjuntos, a!ora la carta que resulto
ser mayor la comparamos con la carta so#rante del otro conjunto, si esta es mayor colocamos la carta
que queda#a en nuestro nuevo conjunto, en este caso ya no podremos comparar porque ya pasamos las
dos cartas de un conjunto a nuestro nuevo conjunto y posteriormente colocamos las dos cartas del
segundo conjunto en el conjunto final de + elementos y quedara ordenado porque anteriormente ya
!a#(amos ordenado cada par de cartas, a!ora supongamos que al !acer la segunda comparaci"n resulto
ser menor, "sea, primero comparamos las de la izquierda de cada conjunto y colocamos la menor en
nuestro nuevo conjunto, y despus comparamos la que resulto mayor de la comparaci"n con la otra
carta que queda del conjunto, si esta carta es mayor pues colocamos la carta menor en nuestro conjunto
y !asta a!orita tendremos nuestro conjunto nuevo con ' cartas y nuestros conjuntos con una sola carta,
a!ora proseguimos a comparar estas cartas y la que resulte menor la colocamos primero en nuestro
nuevo conjunto y al final la carta que so#ro y a!ora tenemos un conjunto de + cartas o nmeros
ordenados, este algoritmo lo seguimos !asta lograr comparar todos los conjuntos e ir creando conjuntos
ms grandes y volverlos a comparar !asta tener un nico conjunto que ser el de todos nuestros
nmeros pero ya ordenados.
QUICKSORT: $l ordenamiento rpido (quic.sort en ingles), es un algoritmo #asado en la tcnica de
divide y vencers, que permite, en promedio, ordenar n elementos en un tiempo proporcional a n log n.
$l algoritmo consta de los siguientes pasos:
$legir un elemento de la lista de elementos a ordenar, al que llamaremos pivote.
/esituar los dems elementos de la lista a cada lado del pivote, de manera que a un lado queden
todos los menores que l, y al otro los mayores. 0os elementos iguales al pivote pueden ser
colocados tanto a su derec!a como a su izquierda, dependiendo de la implementaci"n deseada.
$n este momento, el pivote ocupa e-actamente el lugar que le corresponder en la lista
ordenada.
0a lista queda separada en dos su#listas, una formada por los elementos a la izquierda del
pivote, y otra por los elementos a su derec!a.
/epetir este proceso de forma recursiva para cada su#lista mientras stas contengan ms de un
elemento. 1na vez terminado este proceso todos los elementos estarn ordenados.
2omo se puede suponer, la eficiencia del algoritmo depende de la posici"n en la que termine el pivote
elegido.
$n el mejor caso, el pivote termina en el centro de la lista, dividindola en dos su#listas de igual
tamao. $n este caso, el orden de complejidad del algoritmo es 3(n4log n).
$n el peor caso, el pivote termina en un e-tremo de la lista. $l orden de complejidad del
algoritmo es entonces de 3(n5). $l peor caso depender de la implementaci"n del algoritmo,
aunque !a#itualmente ocurre en listas que se encuentran ordenadas, o casi ordenadas. 6ero
principalmente depende del pivote, si por ejemplo el algoritmo implementado toma como
pivote siempre el primer elemento del array, y el array que le pasamos est ordenado, siempre
va a generar a su izquierda un array vac(o, lo que es ineficiente.
$n el caso promedio, el orden es 3(n4log n).
ENCONTRAR EL MINIMO: 2onsiste #sicamente en generar un arreglo el cual contuviese
elementos de tipo entero generados aleatoriamente, y que en #ase a que tomramos como #ase el
primer elemento del arreglo, y con un ciclo for compararlo con cada otro elemento del arreglo, si
encontra#a uno menor al que tenemos como #ase, este de#er(a guardarse en esa varia#le au-iliar,
siendo a!ora el numero #ase a comparar con los dems elementos del arreglo, y as( continuamente
!asta que ya no !aya ms elementos a comparar.
ENCONTRAR EL MINIMO Y EL MAXIMO: 7asndonos en el programa anterior del m(nimo solo
!a#(a que agregarle una condici"n mas junto a otra varia#le e-tra, siendo esta nueva condici"n que de
igual forma tomara el primer elemento como #ase, y de a!( preguntar si el elemento que esta
comparndose es mayor, entonces nuestra varia#le au-iliar contendr ese nuevo valor y continuara
preguntando a los dems elementos del arreglo, siempre en #usca de un elemento de mayor valor que el
contenido.
ENCONTRAR EL SEGUNDO MINIMO: 8e igual forma #asndonos en el programa del m(nimo, lo
que !acemos aqu(, es que tenemos a!ora un au-iliar e-tra, tomamos el elemento inicial del arreglo lo
almacenamos en au-&, por ejemplo, y se !ace el proceso de comparaci"n con los dems elementos, si
encuentra uno menor, el que esta#a en au-& pasa a au-', y el elemento encontrado como el menor se
almacena en au-&, y as( mientras vaya encontrando algn elemento con menor valor, realizara el
mismo proceso, !asta que termine con todos los elementos, lo que !ar al final no es mostrar el
m(nimo, si no el segundo valor que almaceno como el segundo minimo.
CAPTURAS DE PANTALLA DE LOS PROGRAMAS REALIZADOS
TABLA Y GRAFICA DE RESULTADOS OBTENIDOS
N=500 N=1000 N=3000 N=7000 N=10000
0.003947019577026 s 0.016733884811401 s 0.144232034683228 s 0.372624874114990 s 0.742788076400757 s
0.001417875289917 s 0.005483865737915 s 0.050146102905273 s 0.193899869918823 s 0.389906167984009 s
0.000550985336304 s 0.000987052917480 s 0.002953767776489 s 0.007826089859009 s 0.010169982910156 s
0.000159978866577 s 0.000343799591064 s 0.001168966293335 s 0.002933025360107 s 0.004360198974609 s
ALGORITMO N=10 N=50 N=100 N=300
BURBUJA 0.000005960464478 s 0.000042200088501 s 0.000154018402100 s 0.001399993896484 s
INSERTSORT 0.000006198883057 s 0.000020027160645 s 0.000056982040405 s 0.000494956970215 s
MERGESORT 0.000163793563843 s 0.000209093093872 s 0.000225067138672 s 0.000396966934204 s
QUICKSORT 0.000006914138794 s 0.000016212463379 s 0.000030040740967 s 0.000091075897217 s