Académique Documents
Professionnel Documents
Culture Documents
Nombres: LEZAMA ESCOBAR CESAR GUZMAN VAZQUEZ CARLOS DIEGO SANCHEZ MEDERO GABRIEL GALVAN MARTINEZ EURY
GRUPO: 1
SEMESTRE: 3
ndice
Introduccin 2. Planteamiento 3. Importancia 4. Justificacin 5. Objetivo 6. Fundamento Terico 7. Anlisis de algoritmos -Complejidad 8. Eficiencia de algoritmos 9. Anlisis de los mtodos de bsqueda -Algoritmo, prueba de escritorio -cdigo, ejecucin -comparaciones eficiencia 10. Anlisis de los mtodos de ordenamiento -Algoritmo, prueba de escritorio -comparacin de eficiencia 11. conclusin y recomendaciones
1.
rboles
Los rboles se pueden definir como un tipo restringido de grafo. Un grafo se define de la siguiente manera: Un grafo consiste de 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 te 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 sele 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. As se tienen rboles binarios, rboles2-34, rboles rojo-negros, rboles B, etc. A los nodos que dependen de otro nodo tambin se les conoce como nodos "hijos" o descendientes y al otro se le llama nodo "padre". De esto de puede concluir que cada nodo padre es una raz de un sub-rbol. El nmero de sub-rboles que tiene un nodo determinan el grado del nodo. Naturalmente el grado de las hojas es de cero. Por convencin al nodo raz de rbol sele considera el nivel cero del rbol. Cuando se tienen varios rboles en un conjunto, al conjunto se le llama bosque.
Altura de un nodo: Es la longitud del camino ms largo desde el nodo hasta una hoja que sea descendiente de este nodo. Altura de un rbol = altura del nodo raz.
Para poder realizar bsquedas eficientes en rboles se manejan dos caractersticas: Los rboles pueden estar balanceados por altura o por peso.
rbol balanceado por altura: en dnde todos los hijos o nodos hoja se intentan mantener a la misma distanciada la raz. rbol balanceado por peso: en dnde los nodos ms visitados o utilizados se mantienen a poca distancia dela raz
Justificacin
El presente trabajo trata de la utilizacin de los arboles dentro del lenguaje de programacin java, como lo son sus caractersticas y sus respectivas operaciones como lo es eliminar e insertar un dato, adems de que es posible de que pueda ordenar un rbol en sus diferentes formas como lo son inorden, postorden y pre orden. Se ha desarrollado el cdigo para poder lograr el funcionamiento del programa con su respectiva caracterstica
Objetivo
En este tema se estudia una de las estructuras de datos no lineales ms importantes en computacin, el rbol. Comenzaremosintroduciendo la terminologa asociada a los rboles ycontinuaremos con definiciones de varios tipos de rboles y susaplicaciones. Para cada tipo de rbol presentaremos suespecificacin e implementacin, as como los principales Algoritmos de manipulacin.
Representacin en Memoria Hay dos formas tradicionales de representar un rbol binario en memoria: Por medio de datos tipo punteros tambin conocidos como variables dinmicas o listas. Por medio de arreglos. Sin embargo la ms utilizada es la primera, puesto que es la ms natural para tratar este tipo de estructuras. Los nodos del rbol binario sern representados como registros que contendrn como mnimo tres campos. En un campo se almacenar la informacin del nodo. Los dos restantes se utilizarn para apuntar al subrbol izquierdo y derecho del subrbol en cuestin. Cada nodo se representa grficamente de la siguiente Manera:
A. B. SIMILARES Dos arboles binarios son similares cuando sus estructuras son idnticas, pero la informacin que contienen sus nodos es diferente. Ejemplo:
A. B. EQUIVALENTES Son aquellos arboles que son similares y que adems los nodos contienen la misma informacin. Ejemplo:
A. B. COMPLETOS Son aquellos arboles en los que todos sus nodos excepto los del ultimo nivel, tiene dos hijos; el subarbol izquierdo y el subarbol derecho. Recorrido de un rbol Binario Hay tres maneras de recorrer un rbol: en inorden, preorden y postorden. Cada una de ellas tiene una secuencia distinta para analizar el rbol como se puede ver a continuacin:
ClassNodoArbol { NodoArbolnodoIzq; intdatos; NodoArbolnodoDer; PublicNodoArbol(intdatosNodo) { this.datos = datosNodo; nodoIzq = nodoDer = null; } Publicvoidinsertar(intvalorInsertar){ if(valorInsertar< datos){ if(nodoIzq == null){ nodoIzq = new NodoArbol(valorInsertar); } else{ nodoIzq.insertar(valorInsertar); } } else if(valorInsertar>datos){ if(nodoDer == null){ nodoDer = new NodoArbol(valorInsertar); } else{ nodoDer.insertar(valorInsertar); } } } } }
Complejidad
En las Ciencias de la Computacin cuando se dice que un problema tiene solucin, significa que existe un algoritmo susceptible de implantarse en una computadora, capaz de producir la respuesta correcta para cualquier instancia del problema en cuestin. Para ciertos problemas es posible encontrar ms de un algoritmo capaz de resolverlos, lo cual nos enfrenta al problema de escoger alguno de ellos. La tarea de decidir cul de ellos es el mejor debe basarse en criterios acordes a nuestros intereses. En la mayora de los casos la eleccin de un buen algoritmo est orientada hacia la disminucin del costo que implica la solucin del problema; bajo este enfoque es posible dividir los criterios en dos clases: a) Criterios orientados a minimizar el costo de desarrollo: claridad, sencillez y facilidad de implantacin, depuracin y mantenimiento. b) Criterios orientados a disminuir el costo de ejecucin: tiempo de procesador y cantidad de memoria utilizados. Si el programa que implanta el algoritmo se va a ejecutar unas cuantas veces, el costo de desarrollo es dominante, en este caso se debe dar ms peso a los primeros criterios. Por el contrario, si el programa se va a utilizar frecuentemente, dominar el costo de ejecucin, y por ende, se debe elegir un algoritmo que haga uso enciente de los recursos de la computadora, es decir, se le debe evaluar prioritariamente bajo los criterios de la segunda clase.
Eficiencia de algoritmos
Medida del uso de los recursos computacionales requeridos por la ejecucin de un algoritmo en funcin del tamao de las entradas. Emprica Terica estamos interesados en contar cuantas instrucciones simples (asignaciones, comparaciones, etc.) se ejecutan, asumimos que independientemente de la mquina en que se ejecute, todas las operaciones simples consumen el mismo tiempo. Principio de Invariancia: Dos implementaciones distintas de un mismo algoritmo no difieren en eficiencia ms que en una constante multiplicativa.
Tipos de Anlisis Peor de los Casos: Se corresponde con el peor tiempo. T(n) es el tiempo mximo sobre las entradas. Mejor Caso: Lmite inferior en el tiempo. T(n) es el menor tiempo de todas las posibles entradas Caso Promedio: Es el tiempo medio esperado sobre todas las posibles entradas de tamao n. Se considera una distribucin de probabilidad sobre las entradas. Anlisis Probabilstico: Es el tiempo de ejecucin esperado para una entrada aleatoria. Se expresa tanto el tiempo de ejecucin y la probabilidad de obtenerlo. Anlisis Amortizado: El tiempo que se obtiene para un conjunto de ejecuciones, dividido por el nmero de ejecuciones. 4. Anlisis de los mtodos de bsqueda Bsqueda Secuencial
Este mtodo se usa para buscar un elemento de un vector, es explorar secuencialmente el vector, es decir; recorrer el vector desde el prior elemento hasta el ltimo. Si se encuentra el elemento buscado se debe visualizar un mensaje similar a Fin de Bsqueda o Elemento encontrado y otro que diga posicin= en caso contrario, visualizar un mensaje similar a Elemento no existe en la Lista.
Comparaciones eficiencia
Ordenacin interna
Los datos se encuentran en memoria (ya sean arreglos, listas, etc.), y son de acceso aleatorio o directo (se puede acceder a un determinado campo sin pasar por los anteriores).Caractersticas: Los computadores emplean gran parte de su tiempo en operaciones de bsqueda y ordenamiento. Existen 2 mtodos de ordenacin: ordenacin interna (de arrays) y ordenacin externa (archivos). Los arrays se almacenan en la memoria interna o central, de acceso aleatorio y directo, y por ello su gestin es rpida. Los mtodos de ordenacin interna se aplican principalmente a arreglos unidimensionales.
METODOS DE ORDENACION INTERNA: Mtodo de la Burbuja: Revisando cada elemento de la lista que va hacer ordenada con el siguiente, intercambindolos de posicin si estn en el orden equivocado . M to do Q u ic k S ho r t: S e t o m a u n e l e m e n t o x d e u n a p o s i c i n cualquiera del arreglo. Ubica a x en la posicin correcta del arreglo, de tal forma que todos los elementos a su izquierda sean menores o iguales
Mtodo Shellshort: E l a l g or i t m o q u e h a i m p l e m e n t a d o c on s i s t e e n o r d e n a r u n vector. Utiliza una segmentacin entre los datos. Esta segmentacin puede ser de cualquier tamao de acuerdo a una secuencia de valores que empieza con un valor grande (pero menor al tamao total del vector) y van disminuyendo hasta llegar a una segmentacin de tamao 1. Mtodo Radix: Este ordenamiento se basa en los valores de los dgitos reales en las representaciones de posiciones de los nmeros que reordenan. Por ejemplo, el nmero 235 es en notacin decimal que rescribe con un 2 en la posicin de centenas, un 3 en la posicin de d e c e n a s y u n 5 e n l a p o s i c i n d e u n i d a d e s . E l m s g r a n d e d e d o s enteros de igual longitud se determina del modo siguiente: empezar en el digito ms significativo y avanzar por los dgitos menos significativos mientras coincidan los dgitos correspondientes en los dos nmeros. El nmero con el digito ms grande en la primera posicin en la cual los dgitos de los dos nmeros no coinciden es el mayor de los dos. Por supuesto, si coinciden todos los dgitos de ambos nmeros, los nmeros son iguales.
ORDENACIN EXTERNA:
Es un trmino genrico para los algoritmos que pueden manejar grandes cantidades de informacin. El ordenamiento externo se requiere cuando la informacin que se tiene que ordenar no cabe en la memoria principal de una computadora (tpicamente la RAM) y u n t i p o de memoria ms lenta (tpicamente un disco) tiene que utilizaren el proceso.
Es realizar particiones tomando secuencias ordenadas de mxima longitud en lugar de secuencias ordenadas de tamao fijo p r e v i a m e n t e determinadas. Luego se realiza la fusin de esas secuencias ordenadas, alternativamente sobre dos archivos. Repitiendo e s t e proceso secuencialmente, se logra que el archivo q u e d e completamente ordenado
conclusion y recomendaciones Para ser precisos tendramos que aadir que la terminologa (ARBOL) se define bsicamente como un conjunto finito de elementos que son nombrados como (NODOS). Se puede usar trminos como las relaciones de una familia para descubrir las relaciones entre los nodos de un rbol; y un rbol puede ser implementado fcilmente en una computadora. Es un buen ejemplo ya que se puede saber mucho sobre lo que tiene que ver con los rboles; entre tanto que podemos mencionar se encuentra la raz, los nodos de un rbol y la diferencia entre nodos sucesores y nodos terminales, y e este proyecto deja un claro ejemplo y una excelente explicacin al respecto.