You are on page 1of 16

Universidad Autnoma de Nuevo Len

Facultad de ingeniera Mecnica y Elctrica

Trabajo de Investigacin y Actividad Fundamental 5


Ordenacin y Bsqueda
Algoritmos Computacionales
Equipo # 1
Ivn Alejandro Trujillo Almaguer 1589077
Hctor Eduardo Prez Salas 1583546
Ivn Rodrguez Casillas 1653015

1
ndice

Portada..1
ndice...2
Introduccin3
Ordenacin y Burbuja o Intercambio Directo
4
Seleccin..5
Insercin..6
Shell y Rpido o QuickSort..7
Rpido o QuickSort y Mezcla o MergeSort.8
Montculo o HeapSort..9
Bsqueda y Bsqueda
Ordinaria....10
Bsqueda Secuencial..11
Bibliografa..12

2
Conclusin13

Introduccin
Los algoritmos de ordenamiento nos permiten, como su
nombre lo dice, ordenar. En este caso, nos servir para
ordenar vectores o matrices con valores asignados
aleatoriamente. Nos concentramos 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.
Generalmente, se considera ordenar (clasificar) como el
proceso de reorganizacin de un conjunto dado de objetos en
una secuencia especificada.
El objetivo de este proceso es facilitar la bsqueda posterior
de los elementos del conjunto ordenado.
La bsqueda de informacin es una operacin bsica en el
proceso de datos, de ah que por extensin, la ordenacin se
convierta tambin en una actividad fundamental en dicho
procesamiento de datos. El tema de la
ordenacin es idneo para mostrar como los problemas se
pueden resolver utilizando una gran variedad de algoritmos,

3
todos con el mismo objetivo, pero cada uno presentando
ciertas ventajas sobre los otros.

Ordenacin
Concepto: La ordenacin o clasificacin de datos (sort, en ingls) es
una operacin consistente en disponer un conjunto estructura de
datos en algn determinado orden con respecto a uno de los campos
de elementos del conjunto.
Caractersticas: El ordenar un grupo de datos significa mover los
datos o sus referencias para que queden en una secuencia tal que
represente una orden, el cual puede ser numrico, alfabtico o
incluso alfanumrico, ascendente o descendente.
Aplicaciones: Cada elemento del conjunto de datos de una gua
telefnica tiene un campo nombre, un campo direccin y un campo
nmero de telfono; la gua telefnica est dispuesta en orden

4
alfabtico de nombres; los elementos numricos se pueden ordenar
en orden creciente o decreciente de acuerdo al valor numrico del
elemento.
Ventajas: Su nombre lo dice ordenacion
Desventajas:
Aplicaciones: Cada elemento del conjunto de datos de una gua
telefnica tiene un campo nombre, un campo direccin y un campo
nmero de telfono; la gua telefnica est dispuesta en orden
alfabtico de nombres; los elementos numricos se pueden ordenar
en orden creciente o decreciente de acuerdo al valor numrico del
elemento.

Burbuja o Intercambio Directo


Concepto: Se basa en el principio de comparar pares de elementos
adyacentes e intercambiarlos entre si hasta que estn todos
ordenados.
Caractersticas: La burbuja son dos trminos de la lista
seguidos, j y j+1, que se comparan: si el primero es menor que el
segundo sus valores se intercambian. Esta comparacin se repite en
el centro de los dos bucles, dando lugar a la postre a una lista
ordenada. Puede verse que el nmero de repeticiones solo depende
de n y no del orden de los trminos, esto es, si pasamos al algoritmo
una lista ya ordenada, realizar todas las comparaciones
exactamente igual que para una lista no ordenada.
Aplicaciones: una de las aplicaciones ms importantes de la
computadora
Ventajas: Es bastante sencillo, es un cdigo reducido se realiza el
ordenamiento y es eficaz
Desventajas: Consume bastante tiempo de computadora
Mtodos de Ordenacin: Ir comparando desde la casilla 0 numero
tras nmero hasta encontrar uno mayor, si este es realmente el
mayor de todo el vector se llevar hasta la ltima casilla, si no es

5
as, ser reemplazado por uno mayor que l, Este procedimiento
seguir as hasta que halla ordenado todas las casillas del vector y
Una de las deficiencias del algoritmo es que ya cuando a ordenado
parte del vector vuelve a compararlo cuando esto ya no es
necesario.

Seleccin
Concepto: Es un algoritmo de ordenamiento que
requiere O(n2) operaciones para ordenar una lista de n elementos.
Caractersticas:
Buscar el mnimo elemento de la lista
Intercambiarlo con el primero
Buscar el siguiente mnimo en el resto de la lista
Intercambiarlo con el segundo
Y en general:
Buscar el mnimo elemento entre una posicin i y el final
de la lista
Intercambiar el mnimo con el elemento de la posicin i
Aplicaciones: Este algoritmo mejora ligeramente el algoritmo
de la burbuja. En el caso de tener que ordenar un vector de
enteros, esta mejora no es muy sustancial, pero cuando hay
que ordenar un vector de estructuras ms complejas, la
operacin intercambiar () sera ms costosa en este caso.
Ventajas y desventajas: La principal ventaja de este tipo de
ordenamiento es que funciona bien con una lista pequea.
Adems, debido a que es un algoritmo de ordenamiento en el
lugar, no hay almacenamiento temporal adicional ms 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 mtodo requiere n al
cuadrado de nmero de pasos para ordenar n elementos.
Adems, su rendimiento es fcilmente influenciado por el

6
orden inicial de los elementos antes del proceso de
ordenamiento.

Insercin
Concepto: El mtodo de ordenacin por insercin es similar al
proceso tpico de ordenar tarjetas de nombres (cartas de una baraja)
por orden alfabtico, que consiste en insertar un nombre en su
posicin correcta dentro de una lista o archivo que ya est ordenado.
Caractersticas:
1. El primer elemento A [0] se considera ordenado; es decir, la lista
inicial consta de un elemento.
2. Se inserta A [1] en la posicin correcta, delante o detrs de A[0],
dependiendo de que sea menor o mayor.
3. Por cada bucle o iteracin i (desde i=1 hasta n-1) se explora la
sublista A [i-1] A [0] buscando la posicin correcta de insercin; a la
vez se mueve hacia abajo (a la derecha en la sublista) una posicin
todos los elementos mayores que el elemento a insertar A[i], para
dejar vaca esa posicin.
4. Insertar el elemento a la posicin correcta.
Aplicaciones:

7
Ventajas: Fcil de implementar y requerimientos mnimos de
memoria.
Desventajas: Lento y realiza numerosas comparaciones.
Mtodos de Ordenacin: Hacer comparaciones, en donde cada
iteracin forma una lista ordenada, donde la primera pasada
compara los dos primeros elementos y los ordena, la siguiente
pasada toma el tercer elemento y lo compara con los dos anteriores
colocando a este en su posicin correcta y as sucesivamente hasta
que quede ordenado.

Shell
Concepto: Se suele denominar tambin ordenacin por
insercin con incrementos decrecientes. Se considera que el
mtodo Shell es una mejora de los mtodos de insercin
directa.
Caractersticas: En el algoritmo de insercin, cada elemento
se compara con los elementos contiguos de su izquierda, uno
tras otro. Si el elemento a insertar es el ms pequeo hay
que realizar muchas comparaciones antes de colocarlo en su
lugar definitivo. El algoritmo Shell modifica los saltos
contiguos resultantes de las comparaciones por saltos de
mayor tamao y con ello se consigue que la ordenacin sea
ms rpida. Generalmente se toma como salto inicial
n/2(siendo n el nmero de elementos), luego se reduce el
salto a la mitad en cada repeticin hasta que el salto es de
tamao.
Aplicaciones: La ordenacin de Shell usa una secuencia, h1,
h2, . . ., ht, conocida como la secuencia de incrementos. Al
principio de todo proceso, se fija una secuencia decreciente
de incrementos. Cualquier secuencia funcionar en tanto que

8
empiece con un incremento grande, pero menor al tamao del
arreglo de los datos a ordenar, y que el ltimo valor de dicha
secuencia sea 1.
Ventajas y Desventajas: El Shell sort es una generalizacin
del ordenamiento por insercin, teniendo en cuenta dos
observaciones:

El ordenamiento por insercin es eficiente si la entrada est


"casi ordenada".
El ordenamiento por insercin es ineficiente, en general,
porque mueve los valores slo una posicin cada vez.

Rpido o Quicksort
Concepto: Este mtodo se basa en la tctica "divide y
vencers, que consiste en ir subdividiendo el array en arrays
ms pequeos, y ordenar stos. Para hacer esta divisin, se
toma un valor del array como pivote, y se mueven todos los
elementos menores que este pivote a su izquierda, y los
mayores a su derecha.
Caractersticas: En la prctica, es el algoritmo de ordenacin
ms rpido conocido, su tiempo de ejecucin promedio es O(n
log (n)), siendo en el peor de los casos O (n2), caso altamente
improbable. El hecho de que sea ms rpido que otros
algoritmos de ordenacin con tiempo promedio de O(n log
(n)) (comoSmoothSort o HeapSort) viene dado por que
QuickSort realiza menos operaciones ya que el mtodo
utilizado es el de particin.
Aplicaciones: El mtodo se basa en dividir los n elementos
de la lista a ordenar en dos partes o particiones separadas por
un elemento: una particin izquierda, un elemento central
denominado pivote o elemento de particin, y una particin
derecha.

9
Ventajas y desventajas: Este tipo de ordenamiento es
considerado como el mejor algoritmo de ordenamiento. Esto
se debe a su importante ventaja en trminos 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
una de sus desventajas 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,
insercin o por seleccin. En general, este algoritmo produce
el mtodo ms efectivo y mayormente usado de
ordenamiento para listas de cualquier tamao.

Mezcla o MergeSort
Concepto: Es un algoritmo de ordenamiento externo estable basado
en la tcnica divide y vencers.
Caractersticas: La eficiencia de este algoritmo es bastante notable
en tiempo de ejecucin en comparacin con otros, ya que su manera
de trabajo por grupos pequeos agiliza la organizacin de los datos.
Su utilizacin se da con mucha frecuencia cuando la cantidad de
registros no es muy grande ya que para hacer las mezclas ste
mtodo utiliza el doble del espacio que gasta el arreglo original de
valores.
Aplicaciones:
Ventajas: Ordena cada sublista, mezcla las dos sublistas en una
sola lista ordenada, incorpora dos ideas principales para mejorar su
tiempo de ejecucin.
Desventajas: Su principal desventaja radica en que est definido
recursivamente y su implementacin no recursiva emplea una pila,
por lo que requiere un espacio adicional de memoria para
almacenarla.

10
Mtodos de Ordenacin: Dividir el arreglo en dos listas y ordenar
cada una por separado, cuando estn ordenadas se pueden ir
mezclando para as generar la lista ordenada original ms
fcilmente, la fusin de arreglos permite un mtodo de ordenacin
rpido y potente.

Montculo o HeapSort
Concepto: Es un algoritmo de ordenamiento no recursivo, no
estable, con complejidad computacional (nlogn). Consiste
en almacenar todos los elementos del vector a ordenar en
un montculo(heap), y luego extraer el nodo que queda como
nodo raz del montculo (cima) en sucesivas iteraciones
obteniendo el conjunto ordenado.
Caractersticas: Basa su funcionamiento en una propiedad
de los montculos, por la cual, la cima contiene siempre el
menor elemento (o el mayor, segn se haya definido el
montculo) de todos los almacenados en l. El algoritmo,
despus de cada extraccin, recoloca en el nodo raz o cima,
la ltima hoja por la derecha del ltimo nivel. Lo cual destruye
la propiedad heap del rbol. Pero, a continuacin realiza un
proceso de "descenso" del nmero insertado de forma que se
elige a cada movimiento el mayor de sus dos hijos, con el que
se intercambia. Este intercambio, realizado sucesivamente
"hunde" el nodo en el rbol restaurando la propiedad
montculo del rbol y dejando paso a la siguiente extraccin
del nodo raz.
Aplicacin: El algoritmo consiste en insertar todos los
elementos del vector en un montculo y aprovechar que de
esta forma siempre tendremos el mayor elemento en la raz.
Luego para obtener los elementos ordenados de mayor a
menor, solo debemos tomar el valor de la raz, eliminar la raz
y reordenar el montculo cada vez hasta agotar sus nodos. Los
mtodos para insertar en el montculo y para reordenarlo son
de orden logartmico (log(n)) y los recorridos para insertar y

11
eliminar los elementos del montculo son de orden lineal (n)
por lo que la complejidad del HeapSort es de orden n*log(n),
igual a otros algoritmos de ordenamiento eficientes como el
MergeSort o el QuickSort pero con la ventaja de que HeapSort
no utiliza recursividad.
Ventajas y desventajas: La principal ventaja es que este
mtodo funciona ms - No es estable, ya que se
efectivamente con datos comporta de manera ineficaz
desordenados. Con datos del mismo valor.- Su desempeo es
en promedio - Mtodo ms complejo tan bueno como el
Quicksort y se comporta mejor que este ltimo en los peores
casos. No utiliza memoria adicional.

Bsqueda
Concepto: Es aquel que est diseado para localizar un
elemento con ciertas prioridades dentro de una estructura de
datos.
Caractersticas: El proceso de encontrar un elemento
especfico de un array se denomina bsqueda
Aplicaciones: Ubicar el registro correspondiente a cierta
persona en una base de datos, o el mejor movimiento en una
partida de ajedrez.
Ventajas: Es ms eficiente, son fundamentales para poder
localizar la informacin relevante en el
menor tiempo posible y permiten mantener la informacin
ordenada de tal forma que la bsqueda se simplique.
Desventajas: Tener mucha informacin implica tener
dificultades para darle real utilidad

Bsqueda Binaria

12
Concepto: Se le da el nombre de bsqueda binaria por que el
algoritmo divide en dos el arreglo, aludiendo al concepto de
bit, el cual puede tener dos estados
Caractersticas: Est altamente recomendado para buscar
en arreglos de gran tamao. La nica condicin para usar este
algoritmo es que los datos dentro del arreglo estn ordenados
de menor a mayor.
Aplicacin: El algoritmo de bsqueda binaria funciona de la
sig. Forma: 1. Se declaran los ndices superior e inferior. El
inferior en 0 y el superior con el tamao del arreglo menos 1.
2. Se calcula el centro del arreglo con la siguiente frmula:
centro = (superior + inferior) / 2 3. Verificamos si el arreglo en
la posicin centro es igual al dato que buscamos. Si es igual
significa que encontramos el dato y retornamos centro. 4. Si
son diferentes verificamos si el arreglo en la posicin centro
es mayor al dato que queremos buscar. Si es mayor
actualizamos superior: superior = centro - 1, si no
actualizamos inferior: inferior = centro + 1. 5. Volvemos al
paso 2, hasta encontrar el dato que buscamos.
Ventajas y desventajas: La bsqueda binaria es un mtodo
eficiente siempre que el vector est ordenado. La bsqueda
binaria proporciona un medio para reducir el tiempo requerido
para buscar en una lista. Es ms rpido por su recursividad,
su mayor ventaja es con los archivos extensos. El cdigo del
procedimiento de esta bsqueda es corto en comparacin con
las dems tcnicas de bsqueda. El archivo debe estar
ordenado y el almacenamiento de un archivo ordenado suele
plantear problemas en las inserciones y eliminaciones de
elementos. No revisa todos los elementos del archivo,
requiere que todos los elementos estn ordenados.

Bsqueda Secuencial

13
Concepto: Consiste en buscar un elemento comparndolo
secuencialmente con cada elemento del arreglo hasta
encontrarlo, o hasta que se llegue al final.
Caractersticas: No requiere ningn proceso previo de la
tabla, ni ningn conocimiento sobre la distribucin de las llaves
Aplicaciones: Si se desea encontrar la persona cuyo nmero
de telfono es 958-220000 en un directorio o listado telefnico
de su ciudad
Ventajas: La bsqueda binaria es un mtodo eficiente siempre
que el vector est ordenado, la bsqueda binaria proporciona
un medio para reducir el tiempo requerido para buscar en una
lista, es ms rpido por su recursividad, su mayor ventaja es
con los archivos extensos, el cdigo del procedimiento de esta
bsqueda es corto en comparacin con las dems tcnicas de
bsqueda.
Desventajas: El archivo debe estar ordenado y el
almacenamiento de un archivo ordenado suele plantear
problemas en las inserciones y eliminaciones de elementos y no
revisa todos los elementos del archivo, requiere que todos los
elementos estn ordenados
Mtodos de Ordenacin:
1. Se declaran los ndices superior e inferior. El inferior en 0 y el
superior con el tamao del arreglo menos 1.
2. Se calcula el centro del arreglo con la siguiente frmula:
centro = (superior + inferior) / 2
3. Verificamos si el arreglo en la posicin centro es igual al dato
que buscamos. Si es igual significa que encontramos el dato y
retornamos centro.
4. Si son diferentes verificamos si el arreglo en la posicin
centro es mayor al dato que queremos buscar. Si es mayor
actualizamos superior: superior = centro - 1, si no actualizamos

14
inferior: inferior = centro + 1.
5. Volvemos al paso 2, hasta encontrar el dato que buscamos.

Bibliografa
http://es.wikipedia.org/wiki/Ordenamiento_Shell
http://html.rincondelvago.com/ordenacion-por-shell.html
http://novella.mhhe.com/sites/dl/free/844814077x/619434/A06.pdf
http://es.wikipedia.org/wiki/Ordenamiento_por_selecci%C3%B3n
http://www.ehowenespanol.com/ventajas-desventajas-algoritmos-
ordenamiento-info_181515/
http://es.wikipedia.org/wiki/Quicksort
http://es.slideshare.net/jhosep94/heap-sort-15397805
http://blog.alguien.at/2011/10/ordenamiento-por-monticulos-
heapsort.html
http://estdatosgrupoa16.blogspot.mx/2009/05/busqueda-por-hash.html
http://es.slideshare.net/brayan000/mtodos-de-bsqueda-12273970
http://www.buenastareas.com/ensayos/Metodos-De-Ordenamiento-y-
Busqueda/1248411.html
http://es.slideshare.net/floriwiis/busqueda-binaria-25867284
http://novella.mhhe.com/sites/dl/free/844814077x/619434/A06.pdf
https://estructuradedatositp.wikispaces.com/6.1.+M%C3%A9todo+de+b
%C3%BAsqueda+SECUENCIAL
http://macabremoon0.tripod.com/id3.html
https://www.google.com.mx/url?
sa=t&rct=j&q=&esrc=s&source=web&cd=5&ved=0CDkQFjAE&url=http
%3A%2F%2Fes.slideshare.net%2Frolfpinto%2Falgortimos-de-
ordenamiento&ei=Q8BfVJrICdieyASEyIJo&usg=AFQjCNFG_Jm-
44DqfgbpBJAAG5VaSkmnNg
http://es.slideshare.net/jaironitsed/metodos-de-ordenacion-ordenamiento-
y-busqueda-algoritmos?related=1
http://es.slideshare.net/johannamartinez28/ordenamiento-por-seleccion-
13867818?related=1

15
http://es.slideshare.net/lalo088/metodos-de-ordenamiento-9582841?
related=2

Conclusin
Como resultado de la investigacin sobre ordenacin y
bsqueda y sus tipos nos informamos que unos son
efectivos pero que consumen mucha memoria todas
tienen sus ventajas y desventajas aunque el que
podemos destacar es el cdigo binario.

16

You might also like