You are on page 1of 19

CIENCIAS DE LA COMPUTACIN I

ESTRUCTURA DE DATOS
Modelamiento de datos Recuperacin de datos
Integrantes: Gmez aupas, Hilda Fabiola Ramrez de la Cruz, Alvaro R. Santos Chvez, Karen Janeth Yauris Solano, Carla Milagros 07140245 09140366 10140351 10140413

13

Estructura de Datos
Qu es un Dato Elemental? es una pieza elemental de informacin que se tiene en un sistema. El primer paso en el diseo de una base de datos debe ser un anlisis detallado y exhaustivo de los datos elementales requeridos. Los elementos normalmente seleccionables para ser considerados como datos elementales sern aquellos que puedan ser procesados en forma individual.

En el proceso de definir esto, pueden plantearse preguntas tales como: "Ser usado este dato para clasificacin?"; "Debe poderse buscar para recuperacin?"; "Se presentar la necesidad de imprimirlo de modo distinto al resto de los datos?; etc. Si la respuesta a cualquiera de estas preguntas es si, entonces este componente de la informacin deber ser seleccionado como dato elemental.

Estructura de Datos una estructura de datos es una forma de organizar un CONJUNTO DE DATOS elementales con el objetivo de facilitar su manipulacin. Cada estructura ofrece ventajas y desventajas en relacin a la simplicidad y eficiencia para la realizacin de cada operacin. De esta forma, la eleccin de la estructura de datos apropiada para cada problema depende de factores como la frecuencia y el orden en que se realiza cada operacin sobre los datos. define la organizacin e interrelacin de estos y un conjunto de operaciones que se pueden realizar sobre ellos. Las operaciones bsicas son: Alta Baja Bsqueda Ordenamiento Apareo

Operaciones Bsicas Alta, adicionar un nuevo valor a la estructura. Baja, borrar un valor de la estructura. Bsqueda, encontrar un determinado valor en la estructura para realizar una operacin con este valor, en forma secuencial o binario (siempre y cuando los datos estn ordenados). Ordenamiento, de los elementos pertenecientes a la estructura. Apareo, dadas dos estructuras originar una nueva ordenada y que contenga a las apareadas.

Categoras de Estructuras de Datos Internas


Dinmicas Estticas Arreglos Estructuras Dinmicas Son aquellas en las que el espacio ocupado en memoria puede ser modificado en tiempo de ejecucin. Corresponden a este tipo las listas, rboles y grafos. Estas estructuras no son soportadas en todos los lenguajes. La eleccin de la estructura de datos idnea depender de la naturaleza del problema a resolver y, en menor medida, del lenguaje. Las estructuras de datos tienen en comn que un identificador, nombre, puede representar a mltiples datos individuales. Tenemos: colas Pilas (stacks) Listas ligadas(sencillas, circulares y dobles) Arboles(binarios , 2-3-4 , rojo-negro, B, B+,AVL) Trie colas Pilas (stacks) Listas ligadas(sencillas, circulares y dobles) Arboles(binarios , 2-3-4 , rojo-negro, B, B+,AVL) Trie

Dinmicas Colas En las colas los elementos slo se pueden insertar en un extremo de la cola (tail) y slo se pueden eliminar desde el otro extremo (head). Mientras que las pilas son estructuras de tipo "LIFO" las colas son "FIFO" (First-In, First-Out), es decir, el dato que llega primero es atendido primero.

Dinmicas Pilas Una pila es un tipo especial de arreglo en que todas las altas y bajas de datos se hacen en un extremo denominado TOP. A las pilas se les llama tambin estructuras "LIFO" (Last In First Out). El proceso de alta en una pila se le llama "PUSH" y la eliminacin de un dato se llama "POP Las pilas se aplican con mayor frecuencia en el anlisis de secuencias de caracteres para verificar gramticas.

Dinmicas Listas Ligadas Es entonces un grupo de datos organizados secuencialmente, pero a diferencia de los arreglos, la organizacin no est dada implcitamente por su posicin en el arreglo. En una lista ligada cada elemento es un nodo que contiene el dato y adems una liga al siguiente dato. Estas ligas son simplemente variables que contienen la(s) direccin(es) de los datos contiguos o relacionados. Para manejar una lista es necesario contar con un apuntador al primer elemento de la lista "head. Las ventajas de las listas ligadas son que: Permiten que sus tamaos cambien durante la ejecucin del programa Proveen una mayor flexibilidad en el manejo de los datos. Este principio de listas ligadas se puede aplicar a cualquiera de los conceptos de estructura de datos vistos anteriormente: arreglos, colas y pilas Tenemos: Listas ligadas sencillas Listas ligadas circulares Listas ligadas dobles

Dinmicas Listas Ligadas Sencillas Una lista ligada sencilla es un grupo de datos en dnde cada dato contiene adems un apuntador hacia el siguiente dato en la lista, es decir, una liga hacia el siguiente dato.

Dinmicas Listas Ligadas Circulares Una lista ligada circular es una lista en la cual el ltimo nodo es ligado al primer elemento de la lista. La ventaja de este tipo de estructura es que siempre se puede llegar a cualquier nodo siguiendo las ligas. La desventaja e s que si no se tiene cuidado una bsqueda puede resultar en un ciclo

infinito. Esto se puede evitar al determinar a un nodo como nodo-cabeza o nodo inicial. Dinmicas Listas Ligadas Dobles Hasta ahora se han manejado listas que se recorren en una sola direccin. En algunas aplicaciones es prctico o hasta indispensable poder recorrer una lista en ambas direcciones. Para estos casos se tienen las listas doblemente ligadas. Esta propiedad implica que cada nodo debe tener dos apuntadores, uno al nodo predecesor y otro al nodo sucesor.

Dinmicas - Arboles Los rboles se pueden definir como un tipo restringido de grafo. Un grafo se define de la siguiente manera: consiste en un nmero de nodos (puntos o vrtices) y un grupo de arcos que unen parejas de nodos. A todos los pares de nodos unidos por un arco se les llama nodos adyacentes. Los arcos pueden tener una direccin determinada, generando as un grafo dirigido, el cual de lo contrario sera no-dirigido. (Tambin existen los grafos mixtos). Por convencin a los nodos de un grafo se les representa con crculos y los arcos que los conectan como lneas(no-dirigido) o flechas (dirigido). Los rboles son entonces un subconjunto importante de los grafos, y son una herramienta til para describir estructuras que representan algn tipo de jerarqua. Un rbol dirigido tiene un nodo al que sele llama "raz" y de este nodo parten todas las conexiones a los dems nodos. A los nodos terminales se les llama "hojas" y a todos los dems se les llama nodos intermedios. De acuerdo al nmero de arcos que parten de cada nodo en un rbol, este se puede clasificar en diferentes categoras. Arboles binarios Arboles 2-3-4 Arboles rojo-negro Arboles B Arboles B+ Arboles AVL Dinmicas - Arboles Binarios Un rbol binario representado con nodos ligados: Como lo indica su nombre, estos rboles estn formados por nodos que pueden tener un mximo de 2 hijos. rbol relleno: Cuando todo nodo tiene 2 hijos o bien es hoja. rbol binario completo: Un rbol binario relleno en dnde todas las hojas tienen la misma profundidad.

Dinmicas arboles 2-3-4 Estos son rboles en cuyos nodos se permite tener ms de una clave al mismo tiempo. Los rboles binarios tienen mximo 2 hijos (derecho e izquierdo). Si se le permite al nodo tener 2 valores, este podr tener 3 ligas a subrboles y uno con 3 valores podr tener 4 ligas. Un rbol con estas caractersticas puede contener entonces nodos con 2, 3 o 4 ligas, de ah que se les llama rboles 2-34. En los rboles 2-3-4 todos los subrboles tienen la misma altura y estn siempre balanceados. Estos rboles son muy atractivos para el almacenamiento y recuperacin de claves, sin embargo son un tanto complicados de implementar.

Dinmicas arboles Rojo Negro Los rboles rojo-negro son rboles binarios en dnde cada nodo tiene un color ya sea rojo o negro. Estos rboles representan una manera de transformar un rbol2-3-4 en uno binario. Esto se puede lograr utilizando los siguientes lineamientos: Todo nodo '2' es transformado a un nodo negro con descendientes negros Todo nodo '3' es transformado en un nodo negro con un hijo rojo y uno negro. Un nodo '4' es transformado a un nodo negro con dos hijos rojos. Transformacin de los nodos '3' y '4' en rojo-negro:

Dinmicas Arboles B Los rboles rojo-negro son rboles binarios en dnde cada nodo tiene un color ya sea rojo o negro. Estos rboles representan una manera de transformar un rbol2-3-4 en uno binario. Esto se puede lograr utilizando los siguientes lineamientos: Todo nodo '2' es transformado a un nodo negro con descendientes negros Todo nodo '3' es transformado en un nodo negro con un hijo rojo y uno negro Un nodo '4' es transformado a un nodo negro con dos hijos rojos. Transformacin de los nodos '3' y '4' en rojo-negro

Dinmicas Arboles B+ Una variacin a los rboles B son aquellos en los que todas las claves estn en las hojas mientras que los nodos no-terminales contienen los ndices para las claves. Adicionalmente las hojas estn conectadas secuencialmente. En estos rboles se requieren 2 tipos de estructuras, una para representar los nodos no-terminales y otra para las hojas. La primera es igual a las de los rboles B, mientras que la segunda tiene un apuntador adicional para apuntar a la siguiente hoja. Estos rboles son especialmente tiles para aplicaciones que requieren ambos tipos de acceso secuencial y aleatorio.

Dinmicas Arboles AVL La estructura de datos ms vieja y mejor conocida para rboles balanceados es el rbol AVL. Su propiedad es que la altura de los subrboles de cada nodo difiere en no mas de1. Para mantenerlo balanceado es necesario saber la altura o la diferencia en alturas de todos los subrboles y eso provoca que tengamos que guardar informacin adicional en cada nodo, un contador de la diferencia entre las alturas de sus dos subrboles. Probablemente la principal caracterstica de los rboles AVL es su excelente tiempo de ejecucin para las diferentes operaciones (bsquedas, altas y bajas).

Dinmicas Trie Una estructura trie (pronunciado como la palabra an ings"try") es esencialmente un rbol n-ario.(Nota: viene del ingls n-ary dnde n es el grado mximo de los nodos del rbol, por ejemplo, si n es igual a 2 al rbol se le llama binario, para n=3 : terciario, n=4 : cuaternario, etc.) A diferencia de las estructuras vistas anteriormente que basaban las bsquedas en la comparacin entre claves, los trie (conocidos tambin como rboles digitales) utilizan la representacin de las claves como secuencias de dgitos o caracteres alfabticos. Los trie son parte de los rboles multiway y son tiles cuando la bsqueda de alguna clave se necesita hacer carcter por carcter. Representacin de las estructuras trie: Arreglos Listas Ligadas Doble arreglo

Representacin de una Estructura Trie con un Arreglo Un trie se puede representar con una coleccin de arreglos (una matriz), en dnde cada rengln corresponde a un estado y cada columna a un smbolo de entrada, incluyendo al de fin de cadena. Si G es el arreglo bidimensional, entonces G[n][a] nos da el estado al que se llega partiendo del estado n recorriendo el arco a .

Representacin de una Estructura Trie con una lista ligada Este tipo de representacin utiliza nodos, dnde el nodo representando al estado m contiene el smbolo del arco a con el que se lleg al estado m y dos apuntadores, uno al siguiente estado y otro a un estado m alterno. Esta representacin nos ahorra mucho espacio, pero puede ser ineficiente en el tiempo de bsqueda cuando hay muchos arcos que parten del mismo nodo. Esta estrategia de representar un trie es una tcnica muy conocida para conjuntos dinmicos de claves

Representacin de una Estructura Trie con un Arreglo Doble Esta representacin del trie utiliza solamente dos arreglos llamados BASE y CHECK. [Aoe, 89] Para representar la funcin goto(n, a) = m se utilizan las siguientes frmulas:

Estticos
Son aquellas en las que el espacio ocupado en memoria se define en tiempo de compilacin y no puede ser modificado durante la ejecucin del programa. Corresponden a este tipo los arrays y registros HAY DOS TIPOS: Arreglos Estructuras Declaracin: Nombre de la variable: ARREGLO[TAMAO] TIPO DE DATO Estticos Arreglos Un arreglo (array) es una coleccin de datos del mismo tipo, que se almacenan en posiciones consecutivas de memoria y reciben un nombre comn nico . Para referirse a un determinado elemento de un array se deber utilizar un ndice, que especifique su posicin relativa en el array. Un arreglo es una coleccin finita, homognea y ordenada de elementos . Finita: Todo arreglo tiene un lmite; es decir, debe determinarse cul ser el nmero mximo de elementos que podrn formar parte del arreglo. Homognea: Todos los elementos del arreglo deben ser del mismo tipo. Ordenada: Se puede determinar cul es el primer elemento, el segundo, el tercero,.... y el n-simo elemento. Los arreglos se clasifican de acuerdo con el nmero de dimensiones que tienen. As se tienen los: Unidimensionales (vectores) Bidimensionales (tablas o matrices) Multidimensionales (tres o ms dimensiones)

Estticos Arreglos Unidimensionales o Vectores Estn formados por un conjunto de elementos de un mismo tipo de datos que se almacenan bajo un mismo nombre, y se diferencian por la posicin que tiene cada elemento dentro del arreglo de datos. Al declarar un arreglo, se debe inicializar sus elementos antes de utilizarlos. Para declarar un arreglo tiene que indicar su tipo, un nombre nico y la cantidad de elementos que va a contener

Ejemplo de Arreglos Unidimensionales Escribir un algoritmo para recorrer secuencialmente un vector H de 10 elementos (haciendo la lectura y escritura de cada elemento) primero con un bucle desde y luego con un bucle mientras. el Pseudocdigo correspondiente ser el siguiente: desde i 1 mientras i<=10 hacer leer(H[I]) escribir (H[I)] I I+1 fin_mientras

Desde i 1 Hasta 10 Hacer leer(H[I]) escribir(H[i]) Fin_desde

Estticos Arreglos Bidimensionales (Tablas o Matrices) Los arreglos bidimensionales son tablas de valores. Cada elemento de un arreglo bidimensional est simultneamente en una fila y en una columna. En matemticas, a los arreglos bidimensionales se les llama matrices, y son muy utilizados en problemas de Ingeniera. En un arreglo bidimensional, cada elemento tiene una posicin que se identifica mediante dos ndices: el de su fila y el de su columna

Ejemplos de Arreglos Bidimensionales Generar una matriz de 4 filas y 5 columnas con nmeros aleatorios entre 1 y 100, e imprimirla.

Estticos Arreglos Multidimensionales (Tres o Ms Dimensiones) Dependiendo del tipo de lenguaje, pueden existir arreglos de tres o ms dimensiones(por ejemplo fortran77 admite siete dimensiones).Para el caso de tres dimensiones, la estructura puede visualizarse como un cubo, y para mayor nmero de dimensiones esta no podr ser visualizada Estas son similares a las matrices pues cada conjunto de ndices individualiza un elemento de la estructura, que se almacena en forma secuencial

Ejemplos de Arreglos Multidimensionales Crear una tabla de 3 pginas, 4 filas y 5 columnas donde el primer elemento valga 1, el segundo 2, el tercero 3 y as sucesivamente, e imprimirla.

Categoras de Estructuras de Datos Externa Para poder acceder a determinada informacin en cualquier momento, se necesitar que ella est depositada en soportes fsicos los cuales la almacenan en forma permanente. Este es el caso de la memoria externa o auxiliar como ser disquete, disco duro, cinta magntica, etc.-, en las cuales sin necesidad de estar conectadas a la corriente elctrica, la informacin permanece all. La forma de guardar los datos en estos dispositivos auxiliares es mediante unas estructuras llamadas archivos o ficheros.

Archivos El lenguaje C, al no ser un lenguaje pensado para desarrollar software de gestin, ofrece una manejo muy bsico de los archivos, apenas algo ms que lo que implementa directamente el sistemas operativo. Sin embargo, es posible realizar un tratamiento ms complejo sirvindose de libreras especificas o mediante el acceso a bases de datos.

Tipos de Archivos Texto: Tiene una estructura muy sencilla: caracteres ASCII separados por salto de lnea. Leemos y escribimos letras, lneas, cadenas de caracteres, etc. Generalmente se realiza un acceso secuencial. Binarios: Leemos y escribimos un nmero de bytes concretos. Acceso secuencial o directo. Planos: Cualquier fichero, sin considerar la estructura de la informacin que contiene. Slo es una lista consecutiva de bytes / octetos. Estructurados: Con una estructura ms menos compleja. Normalmente una serie de registros de un mismo tipo. Ej.- Un fichero de clientes, formado por un una serie de registro con la informacin de cada uno de los clientes de nuestra empresa Funciones Comunes de los Archivos fopen Abrir el archivo fclose Cerrar el archivo fflush Vaciar el buffer de E/S rewind Volver al principio del archivo. Recorrido de un archivo: F = Abrir (archivo, Lectura) Leer (F, Registro) MIENTRAS ( No FIN ( F ) ) Mostrar Registro Leer (F, Registro) FIN-MIENTRAS Cerrar ( F )

Algoritmos de Ordenamiento
Debido a que las estructuras de datos son utilizadas para almacenar informacin, para poder recuperar esa informacin de manera eficiente es deseable que aquella est ordenada. Existen varios mtodos para ordenar las diferentes estructuras de datos bsicas. En general los mtodos de ordenamiento no son utilizados con frecuencia. Hay mtodos muy simples de implementar que son tiles en los casos en dnde el nmero de elementos a ordenar no es muy grande (ej, menos de 500 elementos). Por otro lado hay mtodos sofisticados, ms difciles de implementar pero que son ms eficientes en cuestin de tiempo de ejecucin.

Los mtodos sencillos por lo general requieren de aproximadamente n x n pasos para ordenar n elementos. Los mtodos simples son: Insertion Sort (por insercin directa) 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[]. Selection Sort 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. Shell Sort (EXTENCION AL INSERTION SORT, SIENDO MAS RAPIDO) Denominado as por su desarrollador Donald Shell (1959), ordena una estructura de una manera similar a la del Bubble Sort, sin embargo no ordena elementos adyacentes sino que utiliza una segmentacin entre los datos. Esta segmentacin puede ser de cualquier tamao de acuerdo a una secuencia de valores que empiezan con un valor grande (pero menor al tamao total de la estructura) y van disminuyendo hasta llegar al '1'. Una secuencia que se ha comprobado ser de las mejores es: ...1093, 364, 121, 40, 13, 4, 1. En contraste, una secuencia que es mala porque no produce un ordenamiento muy eficiente es ...64, 32, 16, 8, 4, 2, 1. Su complejidad es de O(n1.2) en el mejor caso y de O(n1.25) en el caso promedio. Bubble Sort El bubble sort, tambin conocido como ordenamiento burbuja, funciona de la siguiente manera: Se recorre el arreglo intercambiando los elementos adjacentes 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. Merge Sort El mtodo Quicksort divide la estructura en dos y ordena cada mitad recursivamente. El caso del MergeSort es el opuesto, es decir, en ste mtodo de unen dos estructuras ordenadas para formar una sola ordenada correctamente. Tiene la ventaja de que utiliza un tiempo proporcional a: n log (n), su desventaja radica en que se requiere de un espacio extra para el procedimiento. Este tipo de ordenamiento es til cuando se tiene una estructura ordenada y los nuevos datos a aadir se almacenan en una estructura temporal para despus agregarlos a la estructura original de manera que vuelva a quedar ordenada . Heap Sort Este mtodo garantiza que el tiempo de ejecucin siempre es de: O(n log n) El significado de heap en ciencia computacional es el de una cola de prioridades (priority queue). Tiene las siguientes caractersticas: Un heap es un arreglo de n posiciones ocupado por los elementos de la cola. (Nota: se utiliza un arreglo que inicia en la posicin 1 y no en cero, de tal manera que al implementarla en C se tienen n+1 posiciones en el arreglo.)

Se mapea un rbol binario de tal manera en el arreglo que el nodo en la posicin i es el padre de los nodos en las posiciones (2*i) y (2*i+1). El valor en un nodo es mayor o igual a los valores de sus hijos. Por consiguiente, el nodo padre tiene el mayor valor de todo su subrbol.

Heap Sort consiste ecencialmente en: convertir el arreglo en un heap construir un arreglo ordenado de atrs hacia adelante (mayor a menor) repitiendo los siguientes pasos: o sacar el valor mximo en el heap (el de la posicin 1) o poner ese valor en el arreglo ordenado o reconstruir el heap con un elemento menos utilizar el mismo arreglo para el heap y el arreglo ordenado.

Partition-Exchange Sort o Quicksort Es un mtodo de ordenamiento recursivo y en lenguajes en dnde no se permite la recursividad esto puede causar un retraso significativo en la ejecucin del quicksort. Su tiempo de ejecucin es de n log2n en promedio.

Radix Sort Este ordenamiento se basa en los valores de los dgitos reales en las representaciones de posiciones de los nmeros que se ordenan. Por ejemplo el nmero 235 se escribe 2 en la posicin de centenas, un 3 en la posicin de decenas y un 5 en la posicin de unidades.

Address-Calculation Sort En este mtodo, se aplica una funcin f a cada llave. El res ultado de esta funcin determina dentro de cul entre varios archivos se va a colocar el registro. La funcin debe tener la propiedad de qie si x<=y,f(x),<=f(y). Esta funcin se denomina preservadora de orden .Por tanto, todos lo registros en un subarchivo tendrn llaves que sean menores que o iguales a las llaves de los registros en otros subarchivos. Un elemento se coloca en un subarchivo en secuencia correcta utilizando cualquier mtodo de ordenam iento; con frecuencia se utiliza la insercin simple. Despus de que se han colocado todos los elementos del archivo original en subarchivos se concatenan para producir el resultado ordenado.

Diferencia entre restauracin y recuperacin de Datos RECUPERACIN DE DATOS.- Es el proceso de reestablecer la informacin contenida en dispositivos de almacenamiento secundarios daadas, defectuosos, corruptos, inaccesibles o que no se puedan acceder de forma normal. Esta involucra una falla en el sistema operativo. Restauracin de datos.- es restaurar la base de datos completa, durante el proceso de restauracin, la base de datos completa se encuentra sin conexin.

Recuperacin de Datos la recuperacin de informacin es de suma importancia YA QUE VEMOS la manera en que se almacena la informacin, tal que esta pueda ser buscada y recuperada eficientemente. Formalizando, dado un conjunto de registros cuya estructura consiste EN una clave identificadora 'k' e informacin relevante I, cmo debe organizarse R para que la recuperacin de un registro Ri a travs de su clave ki requiera el mnimo tiempo posible? La clave es til para diversas operaciones, tales como insercin, eliminacin y recuperacin de los registros. La optimizacin de cualquiera de estas operaciones causa en la mayora de los

casos un conflicto con el funcionamiento ptimo de otra o con la minimizacin del espacio de almacenamiento. Por ejemplo, la recuperacin de los datos en una lista ordenada puede ser eficiente, sin embargo las operaciones para mantenerla ordenada a pesar de las altas y las bajas son complicadas y lentas. De ah que la seleccin de la tcnica apropiada para almacenar informacin depende de las necesidades y prioridades de cada aplicacin. El lugar de CADA dispositivo de almacenamiento, la estructura de almacenamiento y estrategia de bsqueda afectan la velocidad de recuperacin y eficiencia del espacio de memoria. As por ejemplo, si la informacin esta almacenada en memoria principal son importantes la minimizacin de uso de memoria, el nmero de comparaciones de claves y un algoritmo de bsqueda veloz. Por otro lado, si la informacin est en disco se debe minimizar el nmero de accesos a disco. A continuacin de presentarn los conceptos bsicos de las principales estrategias de bsqueda de claves. Estas estrategias se clasifican en : Bsqueda Secuencial Hashing Bsqueda Binaria Bsqueda en Arboles Multiway Bsqueda en Trie Hashing Dinmico

Bsqueda Secuencial El tipo de bsqueda ms sencilla consiste en recuperar claves en una lista o arreglo, una por una desde el principio de la estructura o archivo hasta encontrar la clave (bsqueda exitosa) o llegar hasta el final de la estructura sin encontrarla (bsqueda no exitosa) [Gonnet et al, 91][Knuth, 73]. Si la bsqueda se detiene cuando encuentra la clave que no tomar en cuenta varias ocurrencias de la misma clave, por esa propiedad a estos tipos de bsqueda se les denomina bsqueda primaria. El tiempo de bsqueda depende del nmero de comparaciones, sin embargo el tiempo promedio es de O(n/2), para todos los casos. Cuando un algoritmo no se detiene con la primera ocurrencia de la clave que busca sino que recorre la estructura hasta el final, entonces se le llama de bsqueda secundaria. Su tiempo promedio de ejecucin es de O(n). Estos tipos de bsqueda no son muy eficientes, por lo que su aplicacin slo se justifica cuando: Hashing Las tcnicas de bsqueda basadas en comparaciones, tal como los enfoques secuenciales no son muy eficientes en velocidad y recuperacin de informacin. En ese caso HASHING (tambin conocido como mtodo de dispersin) es una metodologa altamente eficiente para estas operaciones. Hashing consiste en una transformacin matemtica de una clave k con una funcin h(k) que da como resultado la posicin de k en una tabla (llamado tambin transformacin key -toaddress o KAT). hashing significa cortar una parte de la clave y utilizarla como base de la bsqueda. casi no se realizan bsquedas; el tamao de la estructura es pequeo (ej. n<30) se espera un alto nmero de claves repetidas

La funcin hash h(k) toma como entrada una clave k y produce como resultado un valor entero distribuido uniformemente en un rango determinado. Este valor se usa como ndice para la bsqueda o insercin de un dato en un arreglo llamado tambin ' tabla de hash ' o tambin 'tablas dispersas'. El tiempo para encontrar y almacenar datos con el mtodo de hashing es proporcional al tiempo requerido para calcular la funcin hash. Una importante desventaja de hashing es que el conjunto de posibles claves es siempre mayor al nmero de buckets disponibles. Es decir, dos o ms claves pueden asignarse a la misma direccin en la tabla de hash (es una funcin n:1).

Bsqueda Binaria El algoritmo de bsqueda binaria es un excelente mtodo para buscar datos dentro de una estructura (generalmente un arreglo unidimensional). 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. La nica condicin para usar este algoritmo es que los datos dentro del arreglo estn ordenados de menor a mayor.

Bsqueda en Arboles Multiway Los rboles son utilizadas para almacenar informacin. Cuando se trata de volmenes muy grandes de datos guardados en un medio de almacenamiento secundario, generalmente un disco (disco duro), las estructuras y estrategias de bsqueda vistas anteriormente resultan ineficientes, especialmente por el alto nmero de accesos al disco, ya que estos consumen mucho tiempo. Cabe notar que el tamao de una pgina no es totalmente arbitrario ya que a mayor tamao el tiempo para procesarla es mayor, dependiendo tambin de la cantidad de memoria principal disponible.

Bsqueda en Trie un trie es una ESTRUCTURA DE DATOS de tipo RBOL que permite la recuperacin de informacin (de ah su nombre del INGLES reTRIEval). La informacin almacenada en un trie es un conjunto de claves, donde una clave es una secuencia de smbolos pertenecientes a un alfabeto. La forma en la que se almacena la informacin permite hacer bsquedas eficientes de cadenas que comparten prefijos. Por tanto la bsqueda en un trie se hace de forma similar a como se hacen las bsquedas en un diccionario. Se empieza en la raz del rbol. Si el smbolo que estamos buscando es A entonces la bsqueda continua en el subrbol asociado al smbolo A que cuelga de la raz. Se sigue de forma anloga hasta llegar al nodo hoja. Entonces se compara la cadena asociada a el nodo hoja y si coincide con la cadena de bsqueda entonces la bsqueda ha terminado en xito, si no entonces el elemento no se encuentra en el rbol.

Hashing Dinamico Las tablas hash se presentaron como una alternativa hacia las estructuras tipo rbol ya que permitan el almacenamiento de grandes volmenes de informacin y algoritmos eficientes para la administracin sobre estas estructuras (insercin, eliminacin y bsqueda).

BIBLIOGRAFIA

http://javaheaven.blogspot.es/1303603500/ http://es.wikipedia.org/wiki/Trie http://seguridadenlainformacion6.bligoo.com.mx/diferencias-entre-restauracion-yrecuperacion-de-datos#.UovPGcRpnV5 http://programacion.e-recursos.net/doc/FPU6.pdf http://www.slideshare.net/djaramillo/estructuras-de-datos http://www.taringa.net/posts/hazlo-tu-mismo/9064989/52-Ejercicios-enPseudocodigo.html http://ict.udlap.mx/people/ingrid/Clases/IS211/IR.html http://ict.udlap.mx/people/ingrid/Clases/IS211/EDindex.html

You might also like