Está en la página 1de 14

1

INSTITUTO TECNOLGICO DE LEN.


CARRERA:
INGENIERIA EN SISTEMAS COMPUTACIONALES
ASIGNATURA:
ESTRUCTURA DE DATOS

TERCER SEMESTRE

METODOS DE ORDENAMIENTO Y BUSQUEDA

ALUMNA:
MARIA REMEDIOS RUIZ MANRIQUEZ
ASESOR:

MARTIN GARCIA ZUIGA


LEN, GTO. NOVIEMBRE, 2011.

INTRODUCCION
Ordenar significa recuperar o reorganizar un conjunto de datos
u objetos en una secuencia especifica.
Los mtodos de bsqueda nos permiten recuperar informacin
de un arreglo que contenga una lista de datos.
En este trabajo vamos a conocer algunos mtodos de
ordenamiento as como algoritmos de bsqueda. Y
encontraremos algunos ejemplos.

ORDENACION
POR
DIRECTO (BURBUJA)

INTERCAMBIO

Este mtodo es el ms utilizado por estudiantes principiantes debido a su


fcil compresin. Pero es probablemente el mtodo menos eficiente.
Este algoritmo consiste en comparar pares de elementos adyacentes e
intercambiarlos entre si hasta que todos se encuentren ordenados. Se
realizan (n-1) pasadas, transportando en cada una de las mismas el menor
o mayor elemento a su posicin ideal.
EJEMPLO
Se desea ordenar el siguiente arreglo.
A: 14, 66, 08, 15, 43, 26, 12, 35
Las comparaciones que se realizar son:
A [7]>A [8]
A [6]>A [7]
A [5]>A [6]
A [4]>A [5]
A [3]>A [4]
A [2]>A [3]
A [1]>A [2]

(08>16)
(12>60)
(08>16)
(12>60)
(08>16)
(12>60)
(08>16)

no hay intercambio
si hay intercambio
si hay intercambio
si hay intercambio
no hay intercambio
si hay intercambio
si hay intercambio

Luego de la primera pasada el arreglo nos queda:


A: 7, 14, 66, 12, 15, 43, 26, 34
Y as se realiza sucesivamente hasta realizar n-1 pasadas.
El arreglo ya ordenado seria:
A: 7, 12, 14, 15, 26, 34, 43, 66

ORDENACION
SHELL SORT

POR

EL

METODO

DE

Es una versin mejorada del mtodo de insercin directa.las


comparaciones entre elementos se efecta con saltos de mayor tamao
pero con incrementos decrecientes, as los elementos quedaran
ordenados ms rpidamente.
Durante la ejecucin de este algoritmo, los nmeros de la lista se van casiordenando y finalmente, el ltimo paso o funcin es un simple mtodo
como el burbuja.
EJEMPLO.

QUICKSORT (METODO RAPIDO)


Este mtodo es una de los ms eficientes. Se basa en la teora de divide y
vencers.
Lo que realiza quick sort es dividir recursivamente el vector en partes
iguales, indicando un elemento de inicio, fin y pivote que nos permitir
segmentar nuestra lista. Una vez dividida, lo que haces es dejar todos los
mayores que el pivote a su derecha y todos los menores a su izquierda. Al
finalizar el algoritmo debe estar ordenado.
Imagen algoritmo

RADIX
Se denomina ordenamiento de raz. Este mtodo consiste en ir ordenando
los datos de acuerdo a los valores de los dgitos reales en las
representaciones de posiciones de los nmeros que se ordenan. Un
ejemplo puede ser el 323 que se anota el 3 en la posicin de las centenas,
el 2 en las decenas y el 3 en las unidades.
Veamos un ejemplo: 14, 12, 23, 1, 45

Ventajas El ordenamiento es razonablemente eficiente si el nmero de


dgitos en las llaves no es demasiado grande. Si las mquinas tienen la
ventaja de ordenar los dgitos (sobre todo si estn en binario) lo ejecutaran
con mucho mayor rapidez de lo que ejecutan una comparacin de dos
llaves completas.
Este mtodo requiere de ms espacio de almacenamiento en la memoria
para realizar los intercambios. Este tipo de algoritmo se considera de
propsito particular.

INTERCALACION

7
Este mtodo es el que generalmente utilizan los jugadores de cartas
cuando las ordenan, por ello tambin podemos nombrarlo como mtodo
de la baraja.
Este mtodo consiste en insertar un elemento del arreglo en la parte
izquierda del mismo, que ya se encuentra ordenada. Este proceso es
repetido desde el segundo hasta el n-simo elemento.
EJEMPLO
Se desea ordenar el siguiente arreglo:
14, 66, 7, 15, 43, 26, 11, 34
Se realizar las siguientes comparaciones:
PRIMERA PASADA
A [2] <A [1]

(66<14)

no se realiza ningn intercambio

A: 14 66 7 15 43 26 11 34
SEGUNDA PASADA
A [3] <A [2]
A [2] <A [1]

(7<66)
(7<14)

si hay intercambio
si hay intercambio

A: 14 66 7 15 43 26 11 34
TERCERA PASADA
A [4] <A [3]
A [3] <A [2]

(15<66)
(15<14)

si hay intercambio
no hay intercambio

Y as se va sucesivamente hasta ordenar el arreglo...


SEPTIMA PASADA DATOS YA ORDENADOS
7 11 14 16 26 34 43 66
Este mtodo se considera ineficiente y recomendable solo cuando n es
pequeo ya que de no ser as se realizara un nmero muy grande de
comparaciones y ms si el elemento no est ordenado. Y su tiempo de

8
ejecucin es mayor. Pero se podra decir que este mtodo es ms eficiente
que los mtodos de intercambio como el burbuja.

MEZCLA
DIRECTA
ESPOSICION)

(TEMA

DE

Este algoritmo consiste en la realizacin sucesiva de una particin y una


fusin que produce secuencias ordenadas de longitud cada vez mayor.

Ventajas:
Buena complejidad
Desventaja:
Consume mucha memoria: Hecho comn a todos los algoritmos de
ordenacin externa.
Es demasiado el tiempo de ejecucin, debido a las sucesivas
operaciones de lectura y escritura a/del archivo.

MEZCLA NATURAL

10

Este mtodo es una optimizacin del mtodo de mezcla directa. Lo que


cambia del mtodo es que a comparacin de mezcla directa que realiza
particiones iguales para el arreglo mezcla natural opta por particionar el
arreglo tomando secuencias ordenadas. Posteriormente realiza la fusin de
las secuencias ordenadas intercalndolas esto sobre dos archivos
particionados. Para realizar este mtodo se requiere de cuatro archivos el
principal F, y tres archivos auxiliares q son F1, F2, F3, dos de ellos
considerados de entrada y dos de salida. Esto para realizar una fusinparticin se dice que para saber que el elemento ya esta ordenado un
cuando el segundo archivo queda vacio.

BUSQUEDA SECUENCIAL
Este mtodo consiste en revisar
elemento
por
elemento
hasta
encontrar el dato buscado, o hasta
llegar al final de la lista de datos
disponibles.
Esta bsqueda cuando se realizar en
arreglos desordenados lo nico que
se realiza es recorrer el arreglo hasta
encontrar el dato buscado o se
termine el arreglo.
La
bsqueda
secuencial
para
arreglos ordenados es similar solo que
en esta es conveniente agregar una
condicin que hace ms eficiente el
mtodo. Esta condicin nos consiste
en comparar los arreglos que como
ya estn ordenados si el dato
buscado es mayor q primer dato y
menor que el segundo dato entonces
el numero no se encuentra en el vector.

11

BUSQUEDA BINARIA
El algoritmo consiste en dividir el intervalo de bsqueda en dos partes,
comparando el elemento buscado con el central. En caso de no ser
iguales se redefinen los extremos del intervalo segn si el elemento central
sea mayor o menor que el buscado. Disminuyendo el espacio de
bsqueda. El proceso termina cuando el elemento es encontrado o
cuando el intervalo de bsqueda se anula.
Este mtodo es ms eficiente que el de bsqueda secuencia ya que
realiza menos movimientos al momento de dividir el elemento entre dos
mientras que el secuencial realiza todo el recorrido sobre el arreglo.
PROGRAMACION
Datos de entrada:
vec: vector en el que se desea buscar el dato
tam: tamao del vector. Los subndices vlidos van desde 0 hasta tam-1
inclusive.
dato: elemento que se quiere buscar.
Variables
pos: posicin actual en el arreglo
pos = 0
Mientras pos < tam:
Si vec[pos] == dato devolver verdadero y/o pos, de lo contrario:
pos = pos + 1
Fin (Mientras)
Devolver falso,

BUSQUEDA POR FUNCIONES HASH

12

Este nuevo mtodo es ms veloz en cuestin de bsqueda y sin necesidad


de tener los datos ordenados. El tiempo de bsqueda es independiente del
nmero de componentes del arreglo.
Trabaja basndose en una funcin de transformacin o funcin.
Ventaja
1. Se pueden usar los valores naturales de la llave, puesto que se
traducen internamente a direcciones fciles de localizar
2. Se logra independencia lgica y fsica, debido a que los valores
de las llaves son independientes del espacio de direcciones
3. No se requiere almacenamiento adicional para los ndices.
Desventajas
1. No pueden usarse registros de longitud variable
2. El archivo no est clasificado
3. No permite llaves repetidas
4. Solo permite acceso por una sola llave

Tcnicas utilizadas para transformacin de


claves
Aritmtica modular: El ndice de un nmero es resto de la divisin de
ese nmero entre un nmero N prefijado, preferentemente primo. Los
nmeros se guardarn en las direcciones de memoria de 0 a N-1.
Mitad del cuadrado: Consiste en elevar al cuadrado la clave y coger
las cifras centrales. Este mtodo tambin presenta problemas de colisin:
123*123=15129 --> 51
136*136=18496 --> 84
730*730=532900 --> 29
301*301=90601 --> 06
625*625=390625 --> 06
Truncamiento: Consiste en ignorar parte del nmero y utilizar los
elementos restantes como ndice. Tambin se produce colisin. Por
ejemplo, si un nmero de 8 cifras se debe ordenar en un array de 1000
elementos, se pueden coger la primer, la tercer y la ltima cifras para
formar un nuevo nmero:

13
13000000 --> 100
12345678 --> 138
13602499 --> 169
71140205 --> 715
73162135 --> 715
Plegamiento: Consiste en dividir el nmero en diferentes partes, y
operar con ellas (normalmente con suma o multiplicacin). Tambin se
produce colisin. Por ejemplo, si dividimos los nmeros de 8 cifras en 3, 3 y 2
cifras y se suman, dar otro nmero de tres cifras (y si no, se cogen las tres
ltimas cifras):
13000000 --> 130=130+000+00
12345678 --> 657=123+456+78
71140205 --> 118 --> 1118=711+402+05
13602499 --> 259=136+024+99
25000009 --> 259=250+000+09
Tratamiento de colisiones: Pero ahora se nos presenta el problema
de qu hacer con las colisiones, qu pasa cuando a dos elementos
diferentes les corresponde el mismo ndice. Pues bien, hay tres posibles
soluciones:
Cuando el ndice correspondiente a un elemento ya est ocupado, se le
asigna el primer ndice libre a partir de esa posicin. Este mtodo es poco
eficaz, porque al nuevo elemento se le asigna un ndice que podr estar
ocupado por un elemento posterior a l, y la bsqueda se ralentiza, ya que
no se sabe la posicin exacta del elemento.
Tambin se pueden reservar unos cuantos lugares al final del arreglo para
alojar a las colisiones. Este mtodo tambin tiene un problema: Cunto
espacio se debe reservar? Adems, sigue la lentitud de bsqueda si el
elemento a buscar es una colisin.
Lo ms efectivo es, en vez de crear un arreglo de nmero, crear un arreglo
de punteros, donde cada puntero seala el principio de una lista
enlazada. As, cada elemento que llega a un determinado ndice se pone
en el ltimo lugar de la lista de ese ndice. El tiempo de bsqueda se
reduce considerablemente, y no hace falta poner restricciones al tamao
del arreglo, ya que se pueden aadir nodos dinmicamente a la lista.

CONCLUSION

14

En el portafolio de evidencias se muestran la descripcin de


algunos mtodos de ordenamiento y de bsqueda mismos que
vimos en exposiciones con nuestros compaeros.
Muestra algunos ejemplos y las ventajas y desventajas de
trabajar con cada uno de ellos. Nos damos cuenta cul de ellos
es ms eficiente al momento de programar y cual utiliza ms
memoria etc.
Lo que pude notar es que en cuestin de ordenamiento el ms
eficiente es el de quicsort por sus llamadas recursivas al mismo
mtodo, y en cuanto al de bsqueda podra ser el de bsqueda
binaria a parte que es ms entendible.

También podría gustarte