Estructuras de Datos. Estructuras de Datos para Conjuntos Disjuntos
|
|
- Carmelo Medina Sánchez
- hace 8 años
- Vistas:
Transcripción
1 Estructuras de Datos. Estructuras de Datos para Conjuntos Disjuntos Santiago Zanella Introducción Para ciertas aplicaciones se requiere mantener n elementos distintos agrupándolos en una colección de conjuntos disjuntos, permitiendo dos operaciones: (1) la unión de dos conjuntos de la colección y (2) conocer en qué conjunto se encuentra un elemento dado. Entre estas aplicaciones se cuentan el algoritmo de Kruskal para la determinación del árbol de expansión mínimo de un grafo, la inferencia de tipos, la determinación de las componentes conexas de un grafo, el reconocimiento de objetos en imágenes, étc... 2 Definición de la Estructura Una estructura de datos de conjuntos disjuntos (disjoint-set data structure) mantiene una colección de conjuntos disjuntos entre sí con elementos dentro de un cierto universo S = {S 1, S 2,...,S k } i, j {1,..., k} i j S i S j = U = {x 1,...,x n } Cada conjunto de la colección se identifica por un representante que puede ser un miembro cualquiera del conjunto. Solo se requiere que al consultar por el representante de un conjunto dos veces consecutivas sin modificar el conjunto el resultado sea el mismo. Sin perder generalidad se puede asumir que U = {1,..., n}. Si no fuera así se puede encontrar una función biyectiva que realice la traducción entre U y el conjunto {1,...,n}. Sean x, y U se desea implementar las siguientes operaciones: 1
2 MakeSet(x): Crea un nuevo conjunto cuyo único miembro (y representante) es x. Se requiere que x no esté en ningún conjunto de la estructura. pre: x U k i=1 S i pos: S = S {x} Union(x, y): Une los conjuntos que contienen a x y a y, digamos S x y S y. El representante del conjunto resultante puede ser cualquier miembro de S x S y. Como se requiere que la colección sea disjunta, se eliminan los conjuntos S x y S y de la colección S. pre: x S x y S y S x S y pos: S = S (S x S y ) {S x, S y } Find(x): Encuentra el representante del único conjunto al que pertenece x o 0 si x no está en ningún conjunto de la colección. pre: x U pos: (x S i i = 1,...,k Find(x) S i ) (x / k i=1 S i Find(x) = 0) En lo que sigue se intentará analizar el costo de diferentes implementaciones de la estructura al ejecutar una secuencia σ de m de estas operaciones, de las cuales n son operaciones MakeSet, q son operaciones Union y f son operaciones Find (Ver Tabla 1). Como los conjuntos son disjuntos, cada operación Union reduce el número de conjuntos en 1. Luego de n 1 operaciones Union solamente queda un conjunto, por lo tanto el número de operaciones Union es a lo sumo n 1. σ MakeSet Union Find Número de Operaciones m n q n 1 f = m (n + q) Tabla 1: Número de operaciones de cada tipo en la secuencia σ. Se considerará además que en cada una de las operaciones Union(x, y), x e y son los representantes de los conjuntos a los que pertencen. 3 Aplicación Una aplicación simple de la estructura de conjuntos disjuntos es determinar si dos vértices de un grafo no-dirigido pertenecen o no a la misma componente conexa. 1 procedure connected components (G) 2 foreach v V(G) 2
3 3 MakeSet (v ) ; 4 end 5 foreach (u, v) E(G) 6 if Find (u) Find (v) then 7 Union(u, v ) ; 8 end 9 end 10 end 1 procedure same component (u, v) 2 if Find (u) = Find (v) then 3 return True ; 4 else 5 return False ; 6 end 7 end Ejemplo a b c d e g h i Figura 1: Un grafo no-dirigido con 8 vértices y 3 componentes conexas. Paso Arista Procesada S 0 inicio {a} {b} {c} {d} {e} {g} {h} {i} 1 (a,b) {a, b} {c} {d} {e} {g} {h} {i} 2 (a,e) {a, b, e} {c} {d} {g} {h} {i} 3 (a,g) {a, b, e, g} {c} {d} {h} {i} 4 (c,d) {a, b, e, g} {c, d} {h} {i} 5 (c,i) {a, b, e, g} {c, d, i} {h} Tabla 2: Colección de conjuntos disjuntos luego de proecesar cada arista. La Tabla 2 muestra la colección S que mantiene la estructura en cada paso del procedimiento. Al finalizar, dos vértices se encuentran en el mismo conjunto de la colección si y solo sí se encuentran en la misma componente conexa. Luego, Find(u) = Find(v) si y solo si u y v están en la misma componente conexa. 3
4 La relación R donde u R v si y solo sí u y v están en la misma componente conexa es una relación de equivalencia. En general, siempre que se divide un grupo de objetos en conjuntos disjuntos, la relación R donde xry si y solo sí x e y están en el mismo conjunto es una relación de equivalencia. 4 Representación por Arreglos Una manera simple de implementar la estructura es utilizando un arreglo rep de tamaño n de tal forma que rep[x] indique el representante del conjunto al que pertence x. Se incializan todas las posiciones del arreglo rep en 0. La operación Makeset(x) asigna rep[x] := x. O(1). La operación Find(x) simplemente devuelve el valor de rep[x]. O(1). Para la operación Union(x, y) se recorre el arreglo rep y se cambian, por ejemplo, todas las posiciones iguales a y por x. O(n). 1 procedure MakeSet (x) 2 rep [ x ] := x ; 3 end 1 function Find ( x) 2 return rep [ x ] ; 3 end 1 procedure Union(x, y) 2 for i :=1 to n do 3 if rep [ i ] = y then 4 rep [ i ] := x ; 5 end 6 end 7 end El costo de m operaciones está dominado por la cantidad de operaciones Union, cada una de las cuales tiene costo O(n). El orden de una secuencia σ de m operaciones resulta O(n + qn + f). En el peor caso, q = n 1 = Θ(m) y la secuencia σ completa tiene un orden de tiempo de O(m 2 ). 4
5 (a) (b) rep rep b c d e f g h c c f c f f c b c d e f g h c c c c c c c Figura 2: (a) Representación por arreglos de los conjuntos {c, h, e, b} con c como representante y {f, g, d} con f como representante. (b) Resultado luego de ejecutar Union(c, f). 5 Representación por Listas Se puede mejorar el costo de la operación Union si en lugar de recorrer todas las entradas del arreglo rep se recorren solamente aquellas que corresponden a uno de los dos conjuntos. Esto se puede lograr representando los conjuntos mediante listas usando arreglos. Se representa la estructura usando un arreglo rep como en el caso anterior, un arreglo next que indica el sucesor de un elemento en la lista a la que pertenece y un arreglo last que almacena el último elemento de cada lista. El primer elemento de cada lista sirve como representante del conjunto. Se incializan todas las posiciones del arreglo rep en 0. La operación Makeset(x) crea una nueva lista que contiene solo al elemento x en O(1). La operación Find(x) simplemente devuelve el valor de rep[x]. O(1). Para la operación Union(x, y) se recorre, por ejemplo, la lista que comienza en x cambiando las entradas correspondientes en el arreglo rep por y y luego se concatena al final de la lista que comienza en y. (Fig. 3) c h e b f g d c h e b f g d (a) (b) Figura 3: (a) Representación en forma de lista de los conjuntos {c, h, e, b} y {f, g, d}. (b) Resultado luego de ejecutar Union(c, f). 5
6 1 procedure MakeSet (x) 2 rep [ x ] := x ; 3 next [ x ] := 0; 4 last [ x ] := x ; 5 end 1 function Find ( x) 2 return rep [ x ] ; 3 end 1 procedure Union(x, y) 2 p := x ; 3 do 4 rep [ p ] := y ; 5 p := next [ p ] ; 6 while p 0 7 next [ last [ y ] ] := x ; 8 last [ y ] := last [ x ] ; 9 end Para realizar una operación Union se recorre toda la lista x, lo que lleva un tiempo proporcional a la longitud de la lista. Se puede construir una secuencia de m operaciones que lleve tiempo Θ(m 2 ). Considere la secuencia de m operaciones con n = m/2 + 1 y q = m n = m/2 1 que se muestra en la Tabla 3. Operación Número de Actualizaciones a rep MakeSet(x 1 ) 1.. MakeSet(x n ) 1 Union(x 1, x 2 ) 1 Union(x 2, x 3 ) 2 Union(x 3, x 4 ) 3.. Union(x q 1, x q ) q 1 Tabla 3: Una secuencia de m operaciones que toma tiempo Θ(m 2 ). Cada operación MakeSet realiza una actualización a rep. La i-ésima operación Union realiza i actualizaciones. El número de actualizaciones en las q operaciones Union es q 1 i = Θ(q 2 ) i=1 6
7 El número total de actualizaciones es de orden Θ(n + q 2 ) = Θ(m 2 ) porque n = Θ(m) y q = Θ(m). En promedio cada una de las m operaciones tiene orden Θ(m). 5.1 Unión por Tamaño En la implementación anterior no se consideraba la longitud de cada lista al realizar una operación Union. Qué sucede si se considera y se actualizan siempre los representantes de la lista de menor tamaño? Claramente, la secuencia anterior de operaciones se ejecutaría en orden Θ(m). Aunque el anterior es un caso particular, se observa una mejora en general. 1 procedure Union(x, y) 2 if size [ x ] > size [ y ] then 3 swap (x, y ) ; 4 end 5 6 p := x ; 7 8 do 9 rep [ p ] := y ; 10 p := next [ p ] ; 11 while p 0 12 next [ last [ y ] ] := x ; 13 size [ y ] := size [ x ] + size [ y ] ; 14 end Teorema 5.1 Usando la representación por listas y la técnica de unión por tamaño una secuencia de m operaciones MakeSet, Union y Find, n de las cuales son operaciones MakeSet, toma tiempo O(m + n log n). Demostración Se trata de encontrar para cada elemento x una cota superior del número de veces que se actualiza rep[x]. Cada vez que se actualiza rep[x] al realizar una operación Union(S x, S y ) el elemento x se debe encontrar en la lista de menor tamaño: S x S y y la lista resultante tiene tamaño S x + S y 2 S x Es decir, cada vez que el conjunto al que pertence un elemento x participa en una unión, y se modifica rep[x], el elemento termina dentro de un conjunto que es al menos dos veces mayor. Luego de actualizar log k veces el representante de un elemento, el conjunto en el que está debe tener al menos k miembros. Como un conjunto no puede tener más de n elementos, a lo sumo se actualiza el representante de un elemento log n veces. El número de 7
8 actualizaciones en todas las operaciones Union es por lo tanto de orden O(q log n). Cada operación MakeSet y cada operación Find toma tiempo O(1), por lo tanto la secuencia completa toma tiempo O(n + q log n + f). En el peor caso, cuando n = Θ(m), q = Θ(m) y f = Θ(m), el orden es O(m log m). 6 Representación por Árboles Se puede representar la colección S como una colección de árboles donde cada árbol representa un conjunto y cada nodo es un miembro del conjunto. El representante de un conjunto es el nodo raíz en el árbol y para cada nodo solo se mantiene un puntero a su nodo padre en un arreglo llamado father (Fig. 4). c f f h e d c d b g h e g (a) b (b) Figura 4: Un bosque de conjuntos disjuntos. (a) Dos árboles representando los conjuntos de la Fig. 3. El árbol de la izquierda representa el conjunto {b, c, e, h}, con c como el representante, y el árbol de la derecha representa el conjunto {d, f, g} con f como representante. (b) El resultado luego de Union(c, f). Se incializan todas las posiciones del arreglo father en -1. La operación Makeset(x) crea un nuevo árbol que solo contiene al elemento x en O(1). La operación Find(x) recorre el árbol donde está x hasta la raíz para buscar el representante del conjunto. El orden temporal está dado por la altura del árbol. La operación Union(x, y) asigna, por ejemplo, f ather[x] := y en O(1). (Fig. 3) 1 procedure MakeSet (x) 2 father [ x ] := 0; 3 end 1 function Find ( x) 2 if father [ x ] = 1 then 3 return 0; 8
9 4 end; 5 while father [ x ] 0 do 6 x := father [ x ] ; 7 end 8 return x ; 9 end 1 procedure Union(x, y) 2 father [ x ] := y ; 3 end Hasta el momento, no se obtuvo ninguna mejora sobre la representación por listas en el orden de tiempo que lleva ejecutar una secuencia de m operaciones. Es posible crear una secuencia de aproximadamente m/3 operaciones MakeSet seguidas de aproximadamente m/3 operaciones Union de tal forma que se obtenga un único conjunto representado como un árbol lineal una cadena de nodos. Se puede encontrar luego una secuencia de aproximadamente m/3 operaciones Find cada una de las cuales lleve tiempo Θ(m/3). La secuencia completa se ejecutará en tiempo Θ(m 2 ). 6.1 Heurísticas Utilizando dos simples heurísticas en las operaciones Union y Find se puede mejorar el orden de tiempo para ejecutar una secuencia σ de m operaciones Unión por Tamaño La heurística de unión por tamaño no es más que una extensión de la heurística de unión por tamaño para la representación por listas. La idea consiste en modificar la operación Union para que agregue el árbol con menos nodos como subárbol del árbol con más nodos Compresión de Caminos Cada vez que se ejecuta una instrucción Find(x) se recorre el camino desde x hasta la raíz del árbol que lo contiene. Se puede mejorar el tiempo que llevarán futuras operaciones si durante la operación se convierte cada nodo en el camino de búsqueda en un hijo de la raíz. (Fig. 5) 6.2 Implementación La cantidad de nodos en el subárbol de un nodo x se conserva en size[x]. Cuando se aplica Union sobre dos árboles, el árbol de menor tamaño se convierte en un subárbol de la raíz del árbol con mayor tamaño. En caso de empate se realiza una elección arbitraria. 9
10 (a) f (b) f e e d c b a d c b a Figura 5: Efecto de la compresión de caminos sobre un árbol lineal. (a) (b) Árbol luego de ejecutar Find(a) utilizando compresión de caminos. Árbol original. 1 procedure MakeSet (x) 2 size [ x ] := 0; 3 end 1 function Find ( x) 2 r := x ; 3 while father [ r ] 0 do 4 r := father [ r ] ; 5 end 6 / r es ahora la raíz del árbol / 7 8 p := x ; 9 while p r do 10 t := father [ p ] ; 11 father [ p ] := r ; 12 p := t ; 13 end 14 return r ; 15 end 1 procedure Union(x, y) 2 if size [ x ] > size [ y ] then 3 father [ y ] := x ; 4 size [ x ] := size [ x ] + size [ y ] ; 10
11 5 else 6 father [ x ] := y ; 7 size [ y ] := size [ y ] + size [ x ] ; 8 end 9 end 6.3 Impacto de las Heurísticas Utilizando solamente la heurística de unión por tamaño, cada vez que un nodo se mueve a un nuevo árbol suceden dos cosas: La distancia del nodo a la raíz del árbol donde se encuentra se incrementa en uno. El nuevo árbol tiene al menos dos veces más nodos que el anterior. Si en total existen n elementos en el universo, ningún nodo puede moverse más de log n veces y por lo tanto la distancia de cualquier nodo a la raíz de su árbol no puede exceder log n y cada operación Find requiere tiempo O(logn). El impacto de la compresión de caminos es más difícil de analizar. Cuando se utilizan ambas heurísticas, el orden de complejidad temporal del peor caso es O(m α(m, n)), donde α(m, n) es una función que se define como una especie de inversa de la función de Ackermann y crece en forma extremadamente lenta. Para cualquier aplicación práctica concevible, resulta α(m, n) 4 y por lo tanto el orden de complejidad de la ejecución de una secuencia de m operaciones es prácticamente lineal. En lugar de probar que el orden de complejidad temporal del peor caso al ejecutar una secuencia σ de m operaciones es O(m α(m, n)) se puede probar más fácilmente una cota ligeramente menos ajustada, como se muestra a continuación. 6.4 Análisis de Complejidad Definición F y G Definimos las funciones F y G como sigue: F(k) = { 1 k = 0 2 F(k 1) k 1 (1) G(n) = min{k N F(k) n} (2) La función F crece muy rápidamente y la función G muy lentamente: n = G(n) 5 11
12 n F(n) = = = = = = Tabla 4: Primeros valores de F. n G(n) 0 n < n < n < n < n < n Tabla 5: Primeros valores de G(n). Definición σ σ es la secuencia de operaciones obtenida al eliminar de σ todas las operaciones Find. Definición F F es el bosque resultante luego de ejecutar σ. Definición T i T i es el subárbol con raíz en el nodo i dentro de F. Definición Rango El rango de un vértice i en F, r(i), es la altura de T i. Lema 6.1 Todo nodo i tiene al menos 2 r(i) descendientes, o equivalentemente T i 2 r(i). Demostración Por inducción sobre r(i) Caso Base: r(i) = 0 T i tiene al menos un vértice, i. Por lo tanto T i 1 = 2 0 = 2 r(i). Caso Inductivo: (HI) i F r(i) k T i 2 r(i) 12
13 Sea i un nodo con rango k. En algún momento tuvo rango menor que k y fue unido con otro árbol con raíz en un vértice j de rango k 1 y menos nodos: T i = T i + T j 2 T j 2 2k 1 = 2 k Corolario 6.2 Ningún vértice en F tiene rango mayor que log n. Lema 6.3 Existen a lo sumo n/2 r vértices de rango r en F Demostración Cada vértice de rango r tiene al menos 2 r descendientes. Los nodos de los subárboles de dos nodos en el bosque con el mismo rango son disjuntos. Hay n nodos en total, puede a lo sumo haber n/2 r nodos de rango r. Lema 6.4 Si en algún momento durante la ejecución de σ, w es un descendiente propio de v, entonces el rango de w es estrictamente menor que el rango de v. Demostración Si en algún momento un vértice w es descendiente propio de otro vértice v, lo será hasta que se termine de ejecutar la secuencia (no hay operaciones Find en σ ) y en el bosque resultante F su altura será estrictamente menor. Teorema 6.5 Una secuencia σ de m operaciones de las cuales n 2 son operaciones MakeSet se ejecuta en tiempo O(m G(n)). Demostración Como antes, con q indicaremos el número de operaciones Union y con f el número de operaciones Find. Como cada operación Union y cada operación MakeSet se realiza en tiempo de orden constante y q < n, todas las operaciones MakeSet y Union se realizan en orden O(n). Para acotar el costo de todas las operaciones Find se utiliza una técnica de contabilidad. El costo de ejecutar una sola operación Find se reparte entre la operación misma y algunos vértices en el camino de búsqueda. El costo total se calcula sumando los costos sobre todas las operaciones Find y sobre todos los vértices. Se dividen los rangos de los vértices en F en grupos. Los vértices de rango r se colocan en el grupo G(r). Los vértices con el mayor rango posible, log n. se colocan en el grupo G( log n ) G(n). G(0) = {0, 1} G(1) = {2} G(2) = {3, 4} G(3) = {5, 6,..., 16}... Para los vértices v en el camino de búsqueda de una operación Find(x) (sin contar el propio x), la política para repartir el costo es la siguiente: 13
14 1. Si v es una raíz, o father[v] está en un grupo diferente de v, se le carga una unidad de costo a la operación. 2. Si v y su padre están en el mismo grupo, se le carga una unidad a v Por el Lema 6.4 los vértices en un camino de búsqueda desde un nodo hasta la raíz del árbol crecen estrictamente en rango. Cómo a lo sumo hay G(n) grupos diferentes, ninguna operación Find puede tener costo mayor que G(n). Cada vez que se aplica la segunda regla en un vértice v, se le asigna un nuevo padre que debe tener un rango mayor por el Lema 6.4. Si v está en el grupo g > 0, solamente puede incrementarse su costo F(g) F(g 1) veces por la segunda regla antes de que adquiera un padre en un grupo de rango mayor a su propio rango (el costo de un vértice en el grupo 0 solo puede incrementarse una vez). Cuando pasa a tener un padre en un grupo de rango mayor, nunca más se incrementa su costo porque la segunda regla ya no es aplicable. Para obtener una cota superior de los costos de los vértices, se multiplica el máximo posible costo de un vértice en un grupo por el número de vértices en el grupo. Sea N(g) el número de vértices en el grupo g, por el Lema 6.3: N(g) F(g) r=f(g 1)+1 n/2 r (3) (n/2 F(g 1)+1 ) (1 + 1/2 + 1/4 + ) (4) (n/2 F(g 1)+1 ) 2 (5) = n/2 F(g 1) (6) = n/f(g) (7) El máximo costo para un vértice en el grupo g es menor o igual que F(g) F(g 1), luego el costo máximo de todos los vértices en el grupo g, C(g) resulta C(g) = (F(g) F(g 1)) N(g) (8) n (F(g) F(g 1)) (9) F(g) F(g 1) = n (10) F(g) n (11) Por lo tanto, como no puede haber más de G(n) grupos, el máximo costo asignado a todos los vértices es n G(n). Como el máximo costo asignado a una operación Find es G(n), el máximo costo asignado a todas las operaciones Find es f G(n). Por último, todas las 14
15 operaciones Find se ejecutan en tiempo O((n + f) G(n)). Por todo lo visto, la secuencia σ se ejecuta en tiempo O((n + f) G(n)) y como n + f m en tiempo O(m G(n)). Referencias [AHU74] Alfred V. Aho, J. E. Hopcroft, and Jeffrey D. Ullman. The Design and Analysis of Computer Algorithms. Addison-Wesley, [CSRL01] Thomas H. Cormen, Clifford Stein, Ronald L. Rivest, and Charles E. Leiserson. Introduction to Algorithms. McGraw-Hill Higher Education, [Sed92] Robert Sedgewick. Algorithms in C++. Addison-Wesley, ISBN:
Introducción a la Teoría de Grafos
Introducción a la Teoría de Grafos Flavia Bonomo fbonomo@dc.uba.ar do. Cuatrimestre 009 Árboles Un árbol es un grafo conexo y acíclico (sin ciclos). Un bosque es un grafo acíclico, o sea, una unión disjunta
Más detallesÁrboles. Cursos Propedéuticos 2015. Dr. René Cumplido M. en C. Luis Rodríguez Flores
Árboles Cursos Propedéuticos 2015 Dr. René Cumplido M. en C. Luis Rodríguez Flores Contenido de la sección Introducción Árbol genérico Definición y representación Árboles binarios Definición, implementación,
Más detallesÁrboles AVL. Laboratorio de Programación II
Árboles AVL Laboratorio de Programación II Definición Un árbol AVL es un árbol binario de búsqueda que cumple con la condición de que la diferencia entre las alturas de los subárboles de cada uno de sus
Más detallesEstructuras de datos: Árboles binarios de
Estructuras de datos: Árboles binarios de búsqueda, Dep. de Computación - Fac. de Informática Universidad de A Coruña Santiago Jorge santiago.jorge@udc.es Árboles binarios de búsqueda, Table of Contents
Más detallesCapítulo 12: Indexación y asociación
Capítulo 12: Indexación y asociación Conceptos básicos Índices ordenados Archivos de índice de árbol B+ Archivos de índice de árbol B Asociación estática Asociación dinámica Comparación entre indexación
Más detallesAmpliación de Estructuras de Datos
Ampliación de Estructuras de Datos Amalia Duch Barcelona, marzo de 2007 Índice 1. Diccionarios implementados con árboles binarios de búsqueda 1 2. TAD Cola de Prioridad 4 3. Heapsort 8 1. Diccionarios
Más detallesDEFINICION. Ing. M.Sc. Fulbia Torres Asignatura: Estructuras de Datos Barquisimeto 2006
ARBOLES ESTRUCTURAS DE DATOS 2006 DEFINICION Un árbol (tree) es un conjunto finito de nodos. Es una estructura jerárquica aplicable sobre una colección de elementos u objetos llamados nodos; uno de los
Más detallesCapítulo 6. ÁRBOLES.
67 Capítulo 6. ÁRBOLES. 6.1 Árboles binarios. Un árbol binario es un conjunto finito de elementos, el cual está vacío o dividido en tres subconjuntos separados: El primer subconjunto contiene un elemento
Más detallesARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES
ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES Características ARBOLES - CONCEPTOS Cada elemento del árbol se relaciona con cero o más elementos a quienes llama hijos. Si el árbol no
Más detallesARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES
ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES Introducción al tema a. Formar grupos de 4 personas b. Tomar una hoja en blanco y una lapicera o lápiz c. En la hoja en blanco diseña un
Más detallesNotas de Clase. Prof. Juan Andrés Colmenares, M.Sc. Instituto de Cálculo Aplicado Facultad de Ingeniería Universidad del Zulia. 21 de febrero de 2004
Árboles Notas de Clase Prof. Juan Andrés Colmenares, M.Sc. Instituto de Cálculo Aplicado Facultad de Ingeniería Universidad del Zulia 21 de febrero de 2004 Índice 1. Definición 1 2. Términos Básicos 2
Más detallesEjemplos de conversión de reales a enteros
Ejemplos de conversión de reales a enteros Con el siguiente programa se pueden apreciar las diferencias entre las cuatro funciones para convertir de reales a enteros: program convertir_real_a_entero print
Más detallesNota 2. Luis Sierra. Marzo del 2010
Nota 2 Luis Sierra Marzo del 2010 Cada mecanismo de definición de conjuntos que hemos comentado sugiere mecanismos para definir funciones y probar propiedades. Recordemos brevemente qué son las funciones
Más detallesInstituto de Computación - Facultad de Ingeniería - Universidad de la República
Parcial de Programación 2 Julio de 2011 Generalidades: La prueba es individual y sin material. Duración: 3hs. Sólo se contestan dudas acerca de la letra de los ejercicios. Escriba las hojas de un sólo
Más detallesMatrices Invertibles y Elementos de Álgebra Matricial
Matrices Invertibles y Elementos de Álgebra Matricial Departamento de Matemáticas, CCIR/ITESM 12 de enero de 2011 Índice 91 Introducción 1 92 Transpuesta 1 93 Propiedades de la transpuesta 2 94 Matrices
Más detallesPrimer Parcial de Programación 3 (1/10/2009)
Primer Parcial de Programación (/0/009) Instituto de Computación, Facultad de Ingeniería Este parcial dura horas y contiene carillas. El total de puntos es 0. En los enunciados llamamos C* a la extensión
Más detallesTema 10- Representación Jerárquica: Tema 10- Representación Jerárquica: Árboles Binarios
Tema 10- Representación Jerárquica: Árboles Binarios Tema 10- Representación Jerárquica: Árboles Binarios Germán Moltó Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica de Valencia
Más detallesAnálisis amortizado El plan:
Análisis amortizado El plan: Conceptos básicos: Método agregado Método contable Método potencial Primer ejemplo: análisis de tablas hash dinámicas Montículos agregables (binomiales y de Fibonacci) Estructuras
Más detallesGRAFOS. Prof. Ing. M.Sc. Fulbia Torres
ESTRUCTURAS DE DATOS 2006 Prof. DEFINICIÓN Un grafo consta de un conjunto de nodos(o vértices) y un conjunto de arcos (o aristas). Cada arco de un grafo se especifica mediante un par de nodos. Denotemos
Más detallesCentro de Capacitación en Informática
Fórmulas y Funciones Las fórmulas constituyen el núcleo de cualquier hoja de cálculo, y por tanto de Excel. Mediante fórmulas, se llevan a cabo todos los cálculos que se necesitan en una hoja de cálculo.
Más detallesSorting++ Herman Schinca. Clase 21. 10 de Junio de 2011
Sorting++ Herman Schinca Clase 21 10 de Junio de 2011 Recordando Ya vimos 3 algoritmos de ordenamiento basados en la comparación entre elementos: Selection, Insertion y Bubble. Los 3 en peor caso (cuando
Más detallesBase de datos en Excel
Base de datos en Excel Una base datos es un conjunto de información que ha sido organizado bajo un mismo contexto y se encuentra almacenada y lista para ser utilizada en cualquier momento. Las bases de
Más detallesTecnólogo Informático- Estructuras de Datos y Algoritmos- 2009
Árboles Ejemplos de estructuras arborescentes: con forma de árbol Regla de Alcance: los objetos visibles en un procedimiento son aquellos declarados en él mismo o en cualquier ancestro de él (cualquier
Más detallesárbol como un conjunto de nodos y líneas
ÁRBOLES CAPÍTULO 6 ÁRBOLES Desde el punto de vista conceptual, un árbol es un objeto que comienza con una raíz (root) y se extiende en varias ramificaciones o líneas (edges), cada una de las cuales puede
Más detallesSUMA Y RESTA DE FRACCIONES
SUMA Y RESTA DE FRACCIONES CONCEPTOS IMPORTANTES FRACCIÓN: Es la simbología que se utiliza para indicar que un todo será dividido en varias partes (se fraccionará). Toda fracción tiene dos partes básicas:
Más detallesEstructuras de Datos y Algoritmos. Árboles de Expresión
Estructuras de Datos y Algoritmos Árboles de Expresión Año 2014 Introducción Los avances tecnológicos producen día a día una gran cantidad de información que debe ser almacenada y procesada en forma eficiente.
Más detallesTenemos 3 formas de juego, la bolsa de acciones, la polla y la polla extraordinaria.
Tenemos 3 formas de juego, la bolsa de acciones, la polla y la polla extraordinaria. Bolsa de acciones: En este juego el usuario podrá comprar y vender acciones en los eventos a los cuales se haya registrado,
Más detallesÁrbol binario. Elaborado por Ricardo Cárdenas cruz Jeremías Martínez Guadarrama Que es un árbol Introducción
Árbol binario Elaborado por Ricardo Cárdenas cruz Jeremías Martínez Guadarrama Que es un árbol Introducción Un Árbol Binario es un conjunto finito de Elementos, de nombre Nodos de forma que: El Árbol Binario
Más detallesApuntes Recuperación ante Fallas - Logging
Lic. Fernando Asteasuain -Bases de Datos 2008 - Dpto. Computación -FCEyN-UBA 1 Apuntes Recuperación ante Fallas - Logging Nota: El siguiente apunte constituye sólo un apoyo para las clases prácticas del
Más detallesUn grafo G es un par (V,E) donde V es un conjunto (llamado conjunto de vértices) y E un subconjunto de VxV (conjunto de aristas).
TEMA 5.- GRAFOS 5.1.- DEFINICIONES BÁSICAS Un grafo G es un par (V,E) donde V es un conjunto (llamado conjunto de vértices) y E un subconjunto de VxV (conjunto de aristas). Gráficamente representaremos
Más detallesPRÁCTICA No. 13 ÁRBOL BINARIO DE BÚSQUEDA
INSTITUTO POLITÉCNICO NACIONAL SECRETARIA ACADÉMICA DIRECCIÓN DE EDUCACIÓN SUPERIOR ESIME CULHUACAN NOMBRE ALUMNO: FECHA DIA MES AÑO INGENIERÍA EN COMPUTACIÓN ASIGNATURA 1. Objetivo Apellido paterno ESTRUCTURAS
Más detallesProgramación Genética
Programación Genética Programación Genética consiste en la evolución automática de programas usando ideas basadas en la selección natural (Darwin). No sólo se ha utilizado para generar programas, sino
Más detalles1 1 0 1 x 1 0 1 1 1 1 0 1 + 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1
5.1.3 Multiplicación de números enteros. El algoritmo de la multiplicación tal y como se realizaría manualmente con operandos positivos de cuatro bits es el siguiente: 1 1 0 1 x 1 0 1 1 1 1 0 1 + 1 1 0
Más detallesTEMA 2: Representación de la Información en las computadoras
TEMA 2: Representación de la Información en las computadoras Introducción Una computadora es una máquina que procesa información y ejecuta programas. Para que la computadora ejecute un programa, es necesario
Más detallesELO320 Estructuras de Datos y Algoritmos. Arboles Binarios. Tomás Arredondo Vidal
ELO320 Estructuras de Datos y Algoritmos Arboles Binarios Tomás Arredondo Vidal Este material está basado en: Robert Sedgewick, "Algorithms in C", (third edition), Addison-Wesley, 2001 Thomas Cormen et
Más detallesEn cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.
Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa
Más detallesAlgoritmos sobre Grafos
Sexta Sesión 27 de febrero de 2010 Contenido Deniciones 1 Deniciones 2 3 4 Deniciones sobre Grafos Par de una lista de nodos y una lista de enlaces, denidos a su vez como pares del conjunto de nodos.
Más detallesMétodos Heurísticos en Inteligencia Artificial
Métodos Heurísticos en Inteligencia Artificial Javier Ramírez rez-rodríguez Ana Lilia Laureano-Cruces Universidad Autónoma Metropolitana Métodos Heurísticos en Inteligencia Artificial Los problemas de
Más detallesClase 32: Árbol balanceado AVL
Clase 32: Árbol balanceado AVL http://computacion.cs.cinvestav.mx/~efranco @efranco_escom efranco.docencia@gmail.com (Prof. Edgardo A. Franco) 1 Contenido Problema de los árboles binarios de búsqueda Variantes
Más detallesRegistro (record): es la unidad básica de acceso y manipulación de la base de datos.
UNIDAD II 1. Modelos de Bases de Datos. Modelo de Red. Representan las entidades en forma de nodos de un grafo y las asociaciones o interrelaciones entre estas, mediante los arcos que unen a dichos nodos.
Más detallesTécnicas de prueba 1. FUNDAMENTOS DE LA PRUEBA DEL SOFTWARE
Técnicas de prueba El desarrollo de Sistemas de software implica la realización de una serie de actividades predispuestas a incorporar errores (en la etapa de definición de requerimientos, de diseño, de
Más detallesEstructuras de datos: Proyecto 2
Estructuras de datos: Proyecto 2 28 de mayo de 2013 Instrucciones Enviar las soluciones por email a los ayudantes, con copia a la profesora. Plazo de entrega: 16 de junio (durante todo el día). Se debe
Más detallesESTRUCTURA DE DATOS: ARREGLOS
ESTRUCTURA DE DATOS: ARREGLOS 1. Introduccion 2. Arreglos - Concepto - Caracteristicas 3. Arreglos Unidimensionales 4. Arreglos Bidimensionales 5. Ventajas del uso de arreglos 6. Ejemplo 1. Introducción
Más detallesDefinición 1.1.1. Dados dos números naturales m y n, una matriz de orden o dimensión m n es una tabla numérica rectangular con m filas y n columnas.
Tema 1 Matrices Estructura del tema. Conceptos básicos y ejemplos Operaciones básicas con matrices Método de Gauss Rango de una matriz Concepto de matriz regular y propiedades Determinante asociado a una
Más detallesCAPÍTULO 3. HERRAMIENTA DE SOFTWARE DE PLANEACIÓN DE
CAPÍTULO 3. HERRAMIENTA DE SOFTWARE DE PLANEACIÓN DE INVENTARIO Y PROCESO Objetivos del capítulo Desarrollar una herramienta de software de planeación de inventario con los datos obtenidos del capítulo
Más detallesCAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de
CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de cualquier modelo en el software Algor. La preparación de un modelo,
Más detallesBases de Datos XPath - XQuery 1. XML: XPath - XQuery. Jorge Pérez Rojas Universidad de Talca, II Semestre 2006
Bases de Datos XPath - XQuery 1 XML: XPath - XQuery Jorge Pérez Rojas Universidad de Talca, II Semestre 2006 Bases de Datos XPath - XQuery 2 XPath - XQuery Ambos son estándares para acceder y obtener datos
Más detallesProgramación de Sistemas
Programación de Sistemas Algoritmos de Ordenación Índice Por qué es importante la ordenación? Un par de ejemplos InsertionSort QuickSort Para cada uno veremos: En qué consisten, Casos extremos Eficiencia
Más detallesFigura 4.1 Clasificación de los lenguajes de bases de datos
1 Colección de Tesis Digitales Universidad de las Américas Puebla Romero Martínez, Modesto Este capítulo describen los distintos lenguajes para bases de datos, la forma en que se puede escribir un lenguaje
Más detallesEspacios generados, dependencia lineal y bases
Espacios generados dependencia lineal y bases Departamento de Matemáticas CCIR/ITESM 14 de enero de 2011 Índice 14.1. Introducción............................................... 1 14.2. Espacio Generado............................................
Más detallesUNIDAD 2 Configuración y operación de un sistema de cómputo Representación de datos Conceptos El concepto de bit (abreviatura de binary digit) es fundamental para el almacenamiento de datos Puede representarse
Más detallesUna (muy) breve introducción a la teoría de la computación
Una (muy) breve introducción a la teoría de la computación Marcelo Arenas M. Arenas Una (muy) breve introducción a la teoría de la computación 1 / 48 Ciencia de la computación Cuál es el objeto de estudio
Más detallesEstructuras de Datos. Montículos. Montículos. Montículos. Tema 3. Montículos. Definiciones básicas: Definiciones básicas:
Estructuras de Datos Tema. 1. Definiciones básicas 2. Implementación. Operaciones con montículos 4. Definiciones básicas: En un árbol binario completo todos los niveles del árbol (excepto tal vez el último)
Más detallesCAPÍTULO II MARCO TEÓRICO ADMNISTRACIÓN DE PROYECTOS CON CPM
CAPÍTULO II MARCO TEÓRICO ADMNISTRACIÓN DE PROYECTOS CON CPM 10 2.1 Introducción La dirección de un proyecto de gran magnitud no es una tarea fácil. Para los administradores este es uno de los trabajos
Más detallesPráctico de Procesos, Hilos y Deadlock
Sistemas Operativos Práctico de Procesos, Hilos y Deadlock Universidad Nacional de Córdoba FaMAF Ejercicio 1.. Indique cuantas letras a imprime este programa, describiendo su funcionamiento. printf("a\n");
Más detalles1. HABILIDAD MATEMÁTICA
HABILIDAD MATEMÁTICA SUCESIONES, SERIES Y PATRONES. HABILIDAD MATEMÁTICA Una serie es un conjunto de números, literales o dibujos ordenados de tal manera que cualquiera de ellos puede ser definido por
Más detallesCapitulo V Administración de memoria
Capitulo V Administración de memoria Introducción. Una de las tareas más importantes y complejas de un sistema operativo es la gestión de memoria. La gestión de memoria implica tratar la memoria principal
Más detallesModificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.
UNIVERSIDAD DE CARABOBO FACULTAD DE CIENCIA Y TECNOLOGÍA DIRECCION DE EXTENSION COORDINACION DE PASANTIAS Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere. Pasante:
Más detallesIntroducción a la Programación en MATLAB
Introducción a la Programación en MATLAB La programación en MATLAB se realiza básicamente sobre archivos M, o M-Files. Se los denomina de esta forma debido a su extensión.m. Estos archivos son simple archivos
Más detallesProfesorado de Informática Ciencias de la Computación INET- DFPD Matemática I - Matemática Discreta usando el computador Ing. Prof.
Árboles Profesorado de Informática Ciencias de la Computación INET- DFPD Matemática I - Matemática Discreta usando el computador Ing. Prof. Paula Echenique Una de las estructuras de datos más importantes
Más detallesPreliminares. Tipos de variables y Expresiones
Preliminares. Tipos de variables y Expresiones Felipe Osorio Instituto de Estadística Pontificia Universidad Católica de Valparaíso Marzo 5, 2015 1 / 20 Preliminares Computadoras desarrollan tareas a un
Más detallesCLASE # 5 TÉCNICAS DE CAJA BLANCA
CLASE # 5 TÉCNICAS DE CAJA BLANCA 750105M - TÉCNICAS DE PRUEBAS DE SOFTWARE INGENIERÍA DE SISTEMAS Y COMPUTACIÓN UNIVERSIDAD DEL VALLE SEMESTRE 2013A - DOCENTE BEATRIZ FLORIAN GAVIRIA Basado Parcialmente
Más detallesUniversidad Diego Portales Facultad de Economía y Empresa. 1. Reputación. Apuntes de Teoría de Juegos Profesor: Carlos R. Pitta
En estas notas revisaremos los conceptos de reputación desde la perspectiva de información incompleta. Para ello usaremos el juego del ciempiés. Además, introduciremos los conceptos de juegos de señales,
Más detallesModulo 1 El lenguaje Java
Modulo 1 El lenguaje Java 13 - Codificación en Java Una de las grandes diferencias entre Java y Pascal en cuando a la codificación es que Java se trata de un lenguaje de los llamados case sensitive Esto
Más detallesIntroducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual
Introducción Algunas de las personas que trabajan con SGBD relacionales parecen preguntarse porqué deberían preocuparse del diseño de las bases de datos que utilizan. Después de todo, la mayoría de los
Más detallesEstimado usuario. Tabla de Contenidos
Estimado usuario. El motivo del presente correo electrónico es mantenerle informado de las mejoras y cambios realizados en el software Orathor (Athor/Olimpo) en su versión 5.7.041 la cual ha sido recientemente
Más detallesFunciones, x, y, gráficos
Funciones, x, y, gráficos Vamos a ver los siguientes temas: funciones, definición, dominio, codominio, imágenes, gráficos, y algo más. Recordemos el concepto de función: Una función es una relación entre
Más detallesComplejidad - Problemas NP-Completos. Algoritmos y Estructuras de Datos III
Complejidad - Problemas NP-Completos Algoritmos y Estructuras de Datos III Teoría de Complejidad Un algoritmo eficiente es un algoritmo de complejidad polinomial. Un problema está bien resuelto si se conocen
Más detallesSeminario Profesional MS PROJECT 2010. MODULO 2: Introducción y organización de las tareas
MODULO 2: Introducción y organización de las tareas En este módulo aprenderemos a trabajar con las tareas, conoceremos los fundamentos básicos en la creación y organización de tareas en las secuencia más
Más detallesProgramación I: Funciones y módulos
Programación I: Funciones y módulos Esteban De La Fuente Rubio 2 de abril de 23 Índice. Funciones.. Definición y llamado de funciones............................................. 2.2. Parámetros por omisión..................................................
Más detallesGuía Práctica para el Uso del Servicio de Software Zoho CRM
Guía Práctica para el Uso del Servicio de Software Zoho CRM Parte 4 Modificación de las Listas Estándar del Sistema Modificación del Menú Principal del Sistema Importación de información al Sistema Adición
Más detallesIngeniería en Informática
Departamento de Informática Universidad Carlos III de Madrid Ingeniería en Informática Aprendizaje Automático Junio 2007 Normas generales del examen El tiempo para realizar el examen es de 3 horas No se
Más detallesARREGLOS DEFINICION GENERAL DE ARREGLO
ARREGLOS DEFINICION GENERAL DE ARREGLO Conjunto de cantidades o valores homogéneos, que por su naturaleza se comportan de idéntica forma y deben de ser tratados en forma similar. Se les debe de dar un
Más detallesBANCOS. Manejo de Bancos. Como crear una ficha de Banco? Como modificar los datos de una ficha de Banco? Como borrar una ficha de Banco?
BANCOS El Sistema de Gestión Administrativa permite el manejo de los movimientos bancarios. Seleccionada la opción de Bancos, el sistema presentara las siguientes opciones. Manejo de Bancos Manejo de movimientos
Más detallesJOSÉ PERAZA, FÍSICA 2 JOSÉ PERAZA, FÍSICA 2 JOSÉ PERAZA, FÍSICA 2 Energía Potencial eléctrica
Energía Potencial eléctrica Si movemos la carga q2 respecto a la carga q1 Recordemos que la diferencia en la energía tenemos que: potencial U cuando una partícula se mueve entre dos puntos a y b bajo la
Más detallesCriptografía y Seguridad Computacional 2016-01. Clase 5: 30/03/2016. Tenemos el siguiente esquema donde se manda un mensaje con tag t de verificación:
Criptografía y Seguridad Computacional 2016-01 Clase 5: 30/03/2016 Profesor: Fernando Krell Notas: Diego Peña 1. Seguridad en Verificación Tenemos el siguiente esquema donde se manda un mensaje con tag
Más detallesColegio Salesiano Don Bosco Academia Reparación Y Soporte Técnico V Bachillerato Autor: Luis Orozco. Subneteo
Subneteo La función del Subneteo o Subnetting es dividir una red IP física en subredes lógicas (redes más pequeñas) para que cada una de estas trabajen a nivel envío y recepción de paquetes como una red
Más detallesLABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL
OBJETIVO Mejorar el nivel de comprensión y el manejo de las destrezas del estudiante para utilizar formulas en Microsoft Excel 2010. 1) DEFINICIÓN Una fórmula de Excel es un código especial que introducimos
Más detallesUNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO. Introducción FACULTAD DE INGENIERÍA. Ordenación
Introducción Uno de los procedimientos más comunes y útiles en el procesamiento de datos, es la clasificación u ordenación de los mismos. Se considera ordenar al proceso de reorganizar un conjunto dado
Más detallesManual del Modelizador. 28 de enero de 2009
Índice de contenidos Introducción... 1 Proceso de ejecución de modelos... 1 Origen de datos... 3 Detalles técnicos... 3 Lenguaje de programación... 3 Estructura de los modelos... 3 Biblioteca de clases...
Más detalles35 Facultad de Ciencias Universidad de Los Andes Mérida-Venezuela. Potencial Eléctrico
q 1 q 2 Prof. Félix Aguirre 35 Energía Electrostática Potencial Eléctrico La interacción electrostática es representada muy bien a través de la ley de Coulomb, esto es: mediante fuerzas. Existen, sin embargo,
Más detallesTarea 4.2 Memoria Virtual
1 Tarea 4.2 1. Cuál es la diferencia entre paginación simple y paginación en memoria virtual? En memoria virtual no es necesario que todas las páginas estén en marcos de la memoria principal. Las páginas
Más detallesLos números racionales
Los números racionales Los números racionales Los números fraccionarios o fracciones permiten representar aquellas situaciones en las que se obtiene o se debe una parte de un objeto. Todas las fracciones
Más detallesProgramación estructurada
3. Funciones Programación estructurada Cuando un programa crece: Es importante mantenerlo ordenado No repetir código Agrupar el código según su función Dar nombre a las operaciones comunes var cantidad
Más detallesCAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP
CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP Características del Explorador de Windows El Explorador de Windows es una de las aplicaciones más importantes con las que cuenta Windows. Es una herramienta indispensable
Más detallesEstructuras de Datos y Algoritmos
Estructuras de Datos y Algoritmos Año 205 Deducción de algunos esfuerzos para una Distribución pseudo-aleatoria de datos Introducción Vamos a desarrollar algunos de los esfuerzos para estructuras que utilizan
Más detallesEnterprise Resource Planning (ERP) SISTEMA DE PLANEACIÓN DE RECURSOS MASTER: ALFREDO CASTRO JIMENEZ
Enterprise Resource Planning (ERP) SISTEMA DE PLANEACIÓN DE RECURSOS MASTER: ALFREDO CASTRO JIMENEZ ERICK ANASTASIO FLORES 29/09/2010 UNIVERSIDAD AUTONOMA DE GUADALAJARA TECNOLOGIAS DE INFORMACION Qué
Más detallesMatemáticas para la Computación
Matemáticas para la Computación José Alfredo Jiménez Murillo 2da Edición Inicio Índice Capítulo 1. Sistemas numéricos. Capítulo 2. Métodos de conteo. Capítulo 3. Conjuntos. Capítulo 4. Lógica Matemática.
Más detallesIntroducción a la Firma Electrónica en MIDAS
Introducción a la Firma Electrónica en MIDAS Firma Digital Introducción. El Módulo para la Integración de Documentos y Acceso a los Sistemas(MIDAS) emplea la firma digital como método de aseguramiento
Más detallesApuntes de Matemática Discreta 1. Conjuntos y Subconjuntos
Apuntes de Matemática Discreta 1. Conjuntos y Subconjuntos Francisco José González Gutiérrez Cádiz, Octubre de 2004 Universidad de Cádiz Departamento de Matemáticas ii Lección 1 Conjuntos y Subconjuntos
Más detallesDivisibilidad y números primos
Divisibilidad y números primos Divisibilidad En muchos problemas es necesario saber si el reparto de varios elementos en diferentes grupos se puede hacer equitativamente, es decir, si el número de elementos
Más detallesProcesadores de lenguaje Tema 5 Comprobación de tipos
Procesadores de lenguaje Tema 5 Comprobación de tipos Departamento de Ciencias de la Computación Universidad de Alcalá Resumen Sistemas de tipos. Expresiones de tipo. Equivalencia de tipos. Sobrecarga,
Más detallesTABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.
TABLA DE DECISION La tabla de decisión es una herramienta que sintetiza procesos en los cuales se dan un conjunto de condiciones y un conjunto de acciones a tomar según el valor que toman las condiciones.
Más detallesEstructuras de Control - Diagrama de Flujo
RESOLUCIÓN DE PROBLEMAS Y ALGORITMOS Ingeniería en Computación Ingeniería en Informática UNIVERSIDAD NACIONAL DE SAN LUIS DEPARTAMENTO DE INFORMÁTICA AÑO 2015 Índice 1. Programación estructurada 2 1.1.
Más detallesUna Solución (*) del Problema F Where Are My Genes
Una Solución (*) del Problema F Where Are My Genes Viktor Khlebnikov (vkhlebn@pucp.edu.pe) Enero de 2006 (*) Esta solución fue desarrollada sin conocimiento de la solución del autor del problema. Comencemos
Más detallesUNIDAD 4: PLANO CARTESIANO, RELACIONES Y FUNCIONES. OBJETIVO DE APRENDIZAJE: Representar gráficamente relaciones y funciones en el plano cartesiano.
UNIDAD 4: PLANO CARTESIANO, RELACIONES Y FUNCIONES OBJETIVO DE APRENDIZAJE: Representar gráficamente relaciones y funciones en el plano cartesiano. EL PLANO CARTESIANO. El plano cartesiano está formado
Más detallesVisual Basic 1. Empleo de módulos y Procedimientos. Procedimientos definidos por el usuario
Empleo de módulos y Procedimientos Procedimientos definidos por el usuario Según lo que hemos visto hasta ahora, Visual Basic, almacena el código en módulos. Hay tres clases de módulos: formularios (.frm),
Más detallesQUÉ ES UN NÚMERO DECIMAL?
QUÉ ES UN NÚMERO DECIMAL? Un número decimal representa un número que no es entero, es decir, los números decimales se utilizan para representar a los números que se encuentran entre un número entero y
Más detallesPilas y Colas. Capítulo 3
Pilas y Colas Capítulo 3 Pilas Una pila representa una estructura lineal de datos en que se puede agregar o quitar elementos únicamente por uno de los dos extremos. En consecuencia, los elementos de una
Más detallesMateria: Informática. Nota de Clases Sistemas de Numeración
Nota de Clases Sistemas de Numeración Conversión Entre Sistemas de Numeración 1. EL SISTEMA DE NUMERACIÓN 1.1. DEFINICIÓN DE UN SISTEMA DE NUMERACIÓN Un sistema de numeración es un conjunto finito de símbolos
Más detalles