Métodos de Ordenamiento

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 12

REPBLICA BOLIVARIANA DE VENEZUELA

MINISTERIO DEL PODER POPULAR PARA LA DEFENSA


UNIVERSIDAD NACIONAL EXPERIMENTAL POLITCNICA DE LA FUERZA
ARMADA
UNEFA- NCLEO YARACUY- EXTENSIN NIRGUA

















Emprendedor
Luis M. Hernndez

Facilitador
Ing. Luis Sequera

Mtodos De Ordenamiento

Es la operacin de arreglar los registros de una tabla en algn orden secuencial
de acuerdo a un criterio de ordenamiento. El ordenamiento se efecta con base en el
valor de algn campo en un registro. El propsito principal de un ordenamiento es el de
facilitar las bsquedas de los miembros del conjunto ordenado.

Ej. de Ordenamientos:

Dir. Telefnico, tablas de contenido, bibliotecas y diccionarios , etc.

El ordenar un grupo de datos significa mover los datos o sus referencias para que
queden en una secuencia tal que represente un orden, el cual puede ser numrico,
alfabtico o incluso alfanumrico, ascendente o descendente.

Cundo conviene usar un mtodo de ordenamiento?

Cuando se requiere hacer una cantidad considerable de bsquedas y es
importante el factor tiempo .

Tipos De Ordenamientos:

Los 2 tipos de ordenamientos que se pueden realizar son: los internos y los externos.
Los internos:

Son aquellos en los que los valores a ordenar estn en memoria principal, por lo
que se asume que el tiempo que se requiere para acceder cualquier elemento sea el
mismo (a[1], a[500], etc).
Los externos:

Son aquellos en los que los valores a ordenar estn en memoria secundaria
(disco, cinta, cilindro magntico, etc), por lo que se asume que el tiempo que se requiere
para acceder a cualquier elemento depende de la ltima posicin accesada (posicin 1,
posicin 500, etc).
Algoritmos de ordenamiento:

Internos:
1. Internos
1. Insercin directa.
2. Insercin binaria.
2. Insercin directa.
1.
2. Seleccin directa.
3. Seleccin directa.
1. Burbuja.
2. Shake.
4. Intercambio directo.
1. Shell.
5. Insercin disminucin incremental.
1. Heap.
2. Tournament.
6. Ordenamiento de rbol.
1.
2. Quick sort.
7. Sort particionado.
8. Merge sort.
9. Radix sort.
10. Clculo de direccin.

Externos:
1. Straight merging.
2. Natural merging.
3. Balanced multiway merging.
4. Polyphase sort.
5. Distribution of initial runs.

Clasificacin de los algoritmos de ordenamiento de informacin:
El hecho de que la informacin est ordenada, nos sirve para poder encontrarla y
accesarla de manera ms eficiente ya que de lo contrario se tendra que hacer de manera
secuencial.

A continuacin se describirn 4 grupos de algoritmos para ordenar informacin:
1. Algoritmos de insercin:
En este tipo de algoritmo los elementos que van a ser ordenados son considerados
uno a la vez. Cada elemento es INSERTADO en la posicin apropiada con respecto al
resto de los elementos ya ordenados.
Entre estos algoritmos se encuentran el de INSERCION DIRECTA, SHELL SORT,
INSERCION BINARIA y HASHING.
2. Algoritmos de intercambio:
En este tipo de algoritmos se toman los elementos de dos en dos, se comparan y se
INTERCAMBIAN si no estn en el orden adecuado. Este proceso se repite hasta que se
ha analizado todo el conjunto de elementos y ya no hay intercambios.
Entre estos algoritmos se encuentran el BURBUJA y QUICK SORT.
3. Algoritmos de seleccin:
En este tipo de algoritmos se SELECCIONA o se busca el elemento ms pequeo (o
ms grande) de todo el conjunto de elementos y se coloca en su posicin adecuada. Este
proceso se repite para el resto de los elementos hasta que todos son analizados.
Entre estos algoritmos se encuentra el de SELECCION DIRECTA.
4. Algoritmos de enumeracin:
En este tipo de algoritmos cada elemento es comparado contra los dems. En la
comparacin se cuenta cuntos elementos son ms pequeos que el elemento que se est
analizando, generando as una ENUMERACION. El nmero generado para cada
elemento indicar su posicin.
A continuacin se mostrarn los mtodos de ordenamiento ms simples.
METODO DE INSERCIN.
Este mtodo toma cada elemento del arreglo para ser ordenado y lo compara con
los que se encuentran en posiciones anteriores a la de l dentro del arreglo. Si resulta
que el elemento con el que se est comparando es mayor que el elemento a ordenar, se
recorre hacia la siguiente posicin superior. Si por el contrario, resulta que el elemento
con el que se est comparando es menor que el elemento a ordenar, se detiene el
proceso de comparacin pues se encontr que el elemento ya est ordenado y se coloca
en su posicin (que es la siguiente a la del ltimo nmero con el que se compar).
Procedimiento Insertion Sort
Este procedimiento recibe el arreglo de datos a ordenar a[] y altera las posiciones
de sus elementos hasta dejarlos ordenados de menor a mayor. N representa el nmero de
elementos que contiene a[].

paso 1: [Para cada pos. del arreglo] For i <- 2 to N do
paso 2: [Inicializa v y j] v <- a[i]
j <- i.
paso 3: [Compara v con los anteriores] While a[j-1] > v AND j>1 do
paso 4: [Recorre los datos mayores] Set a[j] <- a[j-1],
paso 5: [Decrementa j] set j <- j-1.
paso 5: [Inserta v en su posicin] Set a[j] <- v.
paso 6: [Fin] End.
MTODO DE SELECCIN.
El mtodo de ordenamiento por seleccin consiste en encontrar el menor de todos
los elementos del arreglo e intercambiarlo con el que est en la primera posicin. Luego
el segundo mas pequeo, y as sucesivamente hasta ordenar todo el arreglo.
Procedimiento Selection Sort
paso 1: [Para cada pos. del arreglo] For i <- 1 to N do
paso 2: [Inicializa la pos. del menor] menor <- i
paso 3: [Recorre todo el arreglo] For j <- i+1 to N do
paso 4: [Si a[j] es menor] If a[j] < a[menor] then
paso 5: [Reasigna el apuntador al menor] min = j
paso 6: [Intercambia los datos de la pos.
min y posicin i] Swap(a, min, j).
paso 7: [Fin] End.
MTODO BURBUJA.
El bubble sort, tambin conocido como ordenamiento burbuja, funciona de la
siguiente manera: Se recorre el arreglo intercambiando los elementos adyacentes que
estn desordenados. Se recorre el arreglo tantas veces hasta que ya no haya cambios.
Prcticamente lo que hace es tomar el elemento mayor y lo va recorriendo de posicin
en posicin hasta ponerlo en su lugar.
Procedimiento Bubble Sort
paso 1: [Inicializa i al final de arreglo] For i <- N down to 1 do
paso 2: [Inicia desde la segunda pos.] For j <- 2 to i do
paso 4: [Si a[j-1] es mayor que el que le sigue] If a[j-1] < a[j] then
paso 5: [Los intercambia] Swap(a, j-1, j).
paso 7: [Fin] End.

Tiempo de ejecucin del algoritmo burbuja:
1. Para el mejor caso (un paso) O(n)
2. Peor caso n(n-1)/2
3. Promedio O(n2)
MTODO DE SHELL.
Ordenamiento de disminucin incremental. Nombrado as debido a su inventor
Donald Shell.

Ordena subgrupos de elementos separados K unidades (respecto de su posicin
en el arreglo) del arreglo original. El valor K es llamado incremento.

Despus de que los primeros K subgrupos han sido ordenados (generalmente
utilizando INSERCION DIRECTA), se escoge un nuevo valor de K ms pequeo, y el
arreglo es de nuevo partido entre el nuevo conjunto de subgrupos. Cada uno de los
subgrupos mayores es ordenado y el proceso se repite de nuevo con un valor ms
pequeo de K.

Eventualmente el valor de K llega a ser 1, de tal manera que el subgrupo
consiste de todo el arreglo ya casi ordenado.

Al principio del proceso se escoge la secuencia de decrecimiento de
incrementos; el ltimo valor debe ser 1.

"Es como hacer un ordenamiento de burbuja pero comparando e intercambiando
elementos."

Cuando el incremento toma un valor de 1, todos los elementos pasan a formar
parte del subgrupo y se aplica insercin directa.

El mtodo se basa en tomar como salto N/2 (siendo N el nmero de elementos) y
luego se va reduciendo a la mitad en cada repeticin hasta que el salto o distancia vale
1.

Mtodos De Bsqueda

Un algoritmo de busqueda es un algoritmo que acepta un argumento a y trata de
encontrar un registro cuya llave sea a. El algoritmo puede dar como resultado el registro
entero o, lo que es mas comun, un apuntador a dicho registro.

Si la bsqueda es infructuosa, con mucha frecuencia, es deseable agregar un
nuevo registro con dicho argumento como llave. Un algoritmo que haga esto se le
llama tabla busqueda o diccionario.

La bsqueda en la cual toda la tabla esta de manera frecuente en la memoria
principal se le llama busqueda interna, mientras que la busqueda en la que la mayor
parte de la table esta en la memoria auxiliar se llama busqueda externa.


Tcnica Secuencial Ordenada/Desordenada:

Normalmente un archivo secuencial se almacena en bloques, en un orden
secuencial simple de los registros. La organizacin fsica del archivo en una cinta o
disco se corresponde exactamente con la ubicacin lgica del archivo. En este caso, el
procedimiento para ubicar los nuevos registros en un archivo de pila separado, llamado
archivo de registro (log file) o archivo de transacciones. Peridicamente, se realiza una
actualizacin por lotes que mezcla el archivo de registro con el archivo maestro para
producir un nuevo archivo en secuencia correcta de claves.

Bsqueda secuencial, tambin se le conoce como bsqueda lineal. Supongamos
una coleccin de registros organizados como una lista lineal. El algoritmo bsico de
bsqueda secuencial consiste en empezar al inicio de la lista e ir a travs de cada
registro hasta encontrar la llave indicada (k), o hasta al final de la lista.

Ventajas de la tcnica

Es el algoritmo ms simple de bsqueda y no requiere ningn proceso previo de la
tabla, ni ningn conocimiento sobre la distribucin de las llaves. La bsqueda
secuencial es el rea del problema donde previamente existan mejores algoritmos.

Es el mejor metodo de busqueda para registros desordenados y revisa nodo por nodo
sin brincar ninguno ( es muy seguro)


Desventajas de la tcnica

Este mtodo de bsqueda es muy lento, pero si los datos no estn en orden es el
nico mtodo que puede emplearse para hacer las bsquedas. Si los valores de la
llave no son nicos, para encontrar todos los registros con una llave particular, se
requiere buscar en toda la lista.

Si los registros a los que se accede con frecuencia no estan al principio del archivo,
la cantidad promedio de comparaciones aumenta notablemente dado que se requiere
mas tiempo para recuperar dichos regisros.

Tcnica de Bsqueda Secuencial Indexada:
Un mtodo popular para superar las desventajas de los archivos secuenciales es
el del archivo secuencias indexado; pero implica un aumento en la cantidad de espacio
requerida.
Funciona de la siguiente manera:
Se reserva una taba auxiliar llamada indice ademas del archivo ordenado mismo.
Cada elemento en el indice consta de una llave kindex y un apuntador al registro en el
archivo que corresponde a kindex. Los elementos en el indice al igual que los elementos
en el archivo, deben estar ordenados en la llave. Si el indice es de un octavo del tamao
del archivo, se representa en el indice cada octavo registra el archivo.
Si el indice comienza a crecer tanto que se vuelve ineficaz se puede usar un
indice secundario que funciona casi de la misma forma que el indice principal, solo que
apunta a este, no a la tabla principal la busqueda empieza con una exploracion por el
indice secundario; esto nos lleva a un subarreglo en el indice principal; despues el
procesamiento continua normalmente.
Ventajas de la tcnica

Permite procesar el archivo secuencialmente por orden lgico y tambin procesarlo
al azar

La ventaja real del mtodo secuencial indexado es que los elementos en la tabla
pueden ser examinados en forma secuencial si todos los registros en el archivo
deben ser accesados, pero sin embargo, el tiempo de bsqueda para algn elemento
en particular se reduce considerablemente. La bsqueda secuencial se realiza en la
tabla de ndices que es ms pequea en lugar de la tabla ms grande. Una vez que se
ha encontrado un ndice correcto, se hace una segunda bsqueda secuencial
nicamente en la parte reducida de la tabla que contiene los registros.

Las eliminaciones de una tabla secuencial indexada se pueden hacer fcilmente
mediante la asignacin de banderas a las entradas que son eliminadas. Durante la
bsqueda secuencial a travs de la tabla, se ignoran las entradas que han sido
eliminadas.

Desventajas de la tcnica

Implica un aumento en la cantidad de espacio requerida, porque se ocupa un indice
y se pone a un lado adems del fichero clasificado a s mismo.

La insercin en una tabla secuencial indexada es un poco ms difcil debido a que
puede que no exista espacio entre dos entradas en la tabla, siendo necesario mover
un gran nmero de elementos en la tabla.

El uso de una lista ligada (indice) da una gran sobrecarga de espacio y tiempo para
los apuntadores que se utilizan en la busqueda de registros.

Tcnica de Bsqueda Binaria.
La bsqueda binaria utiliza un mtodo de `divide y vencers'para localizar el valor
deseado. Con este mtodo se examina primero el elemento central de la lista; si ste es
el elemento buscado, entonces la bsqueda ha terminado.
En caso contrario, se determinar si el elemento buscado ser en la primera o la
segunda mitad de la lista y a continuacin se repite este porceso, utilizando el elemento
central de esa sublista.
Algoritmo

o Se compara la llave buscada con la llave localizada al centro del arreglo.
o Si la llave analizada corresponde a la buscada fin de bsqueda si no.
o Si la llave buscada es menor que la analizada repetir proceso en mitad superior, sino
en la mitad inferior.
o El proceso de partir por la mitad el arreglo se repite hasta encontrar el registro o
hasta que el tamao de la lista restante sea cero , lo cual implica que el valor de la
llave buscada no esta en la lista.

Ventajas de la tcnica

La bsqueda binaria es un mtodo eficiente siempre que el vector est ordenado. En
la prctica, esto suele suceder, pero no siempre. Por esta razn la bsqueda binaria
exige una ordenacin previa del archivo.

La bsqueda binaria proporciona un medio para reducir el tiempo requerido para
buscar en una lista. Este mtodo, sin embargo, exige que los datos estn ordenados.

Es mas rapido por su recursividad, su mayor ventaja es con los archivos extensos.

El codigo del procedimiento de esta busqueda es corto en comparacion con las
demas tecnicas de busqueda.

Desventajas de la tcnica

La bsqueda binaria tiene, sin embargo, inconvenientes a resaltar:

No revisa todos los elementos del archivo, requiere que todos los elementos esten
ordenados

Esta busqueda mas de uno o dos accesos si el archivo es enorme;y mantener ese
archivo ordenado es muy costoso.

Tcnica de Bsqueda por Interpolacin

Este mtodo se puede aplicar solamente a tablas o archivos ordenados. Como su
nombre lo indica se trata de llegar al elemento buscado por medio de la
interpolacin lineal. El procedimiento es recursivo; como en el caso de la bsqueda
binaria, en cada paso se van modificando los lmites, disminuyendo el intervalo,
hasta llegar al elemento buscado.

El funcionamiento de la bsqueda de la interpolacin depende no solamente de
la talla de la secuencia, pero tambin de la entrada de informacin misma. Hay
entradas de informacin para los chequeos de la bsqueda de interpolacin del
deseado en cada nmero en la secuencia. Sin embargo, la bsqueda de la
interpolacin es muy eficiente para las entradas de informacin que consisten en
elementos relativamente uniformemente distribuidos (las paginaciones de un libro,
por supuesto, se distribuyen uniformemente). Puede ser mostrado que el nmero
medio de comparaciones se realiz por la bsqueda de interpolacin, donde el
promedio asume el control todas las secuencias posibles, es 0 (logn del registro).
Aunque ste se parece ser un orden de la mejora magnitud concluda de el
funcionamiento de la bsqueda binaria (debido al logaritmo adicional)

Ventajas de la tcnica

La bsqueda de interpolacin, es una bsqueda mucho mejor que la binaria en la
prctica porque, a menos que no sea muy grande, el valor de log2n es bastante
pequeo que el logaritmo de l no es mucho ms pequeo.

Incluso a pesar de qe el calclo es de algun modo mas complejo, una busqueda con
interpolacion puede proporcionar una mejoria importante a nuestra busqueda binaria
en grandes conjuntos de datos con claves distribuidas de modo uniforme.

Desventajas de la tcnica

La bsqueda de la interpolacin requiere una aritmtica ms elaborada, a parte que
los calculos que se necesitan para esta busqueda son muy lentos.

Para lograr esta busqueda se requieren llaves, multiplicaciones y divisiones
complejas, es decir, calculos de nivel alto.

También podría gustarte