Ordenamiento de un arreglo. Algoritmos y Estructuras de Datos I. Demostración. Cota inferior de complejidad tiempo para sorting

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Ordenamiento de un arreglo. Algoritmos y Estructuras de Datos I. Demostración. Cota inferior de complejidad tiempo para sorting"

Transcripción

1 Ordenamiento de un arreglo Algoritmos y Estructuras de Datos I Segundo cuatrimestre de 2014 Departamento de Computación - FCEyN - UBA Algoritmos - clase 12 Algoritmos de ordenamiento, segunda parte Tenemos un arreglo de un tipo T con una relacïı 1 2n de orden ( ) y queremos modificar el arreglo para que sus elementos queden en orden creciente. problema sort<t> (a : [T], n : Int) { requiere n == a > 1; asegura mismos(a, pre(a)) ordenado(a); Adoptamos como estrategia que modificamos el arreglo permutando elementos, para garantizar que nuestro algoritmo no pierde ningún elemento del arreglo. Conocemos el algoritmo upsort, con complejidad O(n 2 ). 1 2 Cota inferior de complejidad tiempo para sorting Demostración Supongamos que ordenamos esta secuencia: 3, 2, 4, 5, 1. El método comparará los números, y según sean los resultados de las comparaciones permutará los elementos. El efecto neto será: Consideremos algoritmos de ordemiento basados, exclusivamente, en operaciones de comparar elementos y permutarlos. Teorema: Sea cualquier método de ordenamiento (inventado o por inventarse). Ordenar n elementos toma al menos log 2 (n!) pasos. El método no puede ejecutar exactamente de la misma manera si la secuencia es otra, por ejemplo: 2, 3, 4, 5, 1 Por qué? Si lo hiciera, el resultado neto sería 3 Concluímos que la ejecución debe ser una sucesión de pasos distinta para cada permutación posible de la secuencia de entrada. 4

2 Visualicemos todas las ejecuciones como un árbol de ejecuciones. Cada nodo es, o bien una asignación, o bien una comparación. El árbol se ramifica en cada comparación. Cada camino desde la raíz hasta una hoja es una ejecución del programa. La altura del árbol da el peor caso de cantidad de instrucciones ejecutadas por el programa. Si éste es el árbol de ejecuciones de un programa de ordenamiento, que ordena n elementos, para cada una de las n! permutaciones de la secuencia de entrada, la ejecución debe alcanzar una hoja diferente. El árbol debe tener al menos n! hojas. 5 Debe tener al menos n! hojas. Sabemos que un árbol binario con L hojas tiene altura al menos log 2 L. Por lo tanto nuestro árbol tiene altura al menos log 2 n!. Concluímos que el ordenamiento, en el peor caso, requiere al menos log 2 n! pasos. 6 ï 1 2 Ordenamiento mï 1 2 s rï 1 2 pido? En la materia Algoritmos y Estructuras de Datos II verï 1 2 n algoritmos que tienen complejidad O(n log n). Y estudiarï 1 2n a fondo las ventajas y desventajas de cada uno. Para poder hacer un ordenamiento más rápido necesitamos... sort count es un algoritmo eficiente para ordenar un arreglo de enteros de dimensión n, cuyos valores están entre 0 y n 1. saber más acerca de la secuencia de entrada, de forma tal de poder ahorrarnos comparaciones entre elementos. 7 8

3 problema sort count(a : [Int], n : Int) { requiere n == a 1; requiere ( i [0.. a )) 0 a i < a ; asegura mismos(a, pre(a)) ordenado(a); aux ordenado(c) = ( i [0.. c 1))c[i] c[i + 1] aux mismos(b, c) = b == c todos([cuenta(x, b) == cuenta(x, c) x b]) Sea a el arreglo de entrada. El algoritmo sort count usa una estructura auxiliar b, de la misma dimensïı 1 2n que a, donde contaremos la cantidad de ocurrencias de cada elemento. En b[i] indicaremos la cantidad de ocurrencias de i en a. Esto es posible porque los elementos de a son enteros mayores o iguales que 0 y menores que la dimensïı 1 2n de a. Luego, ordenaremos a escribiendo de izquierda a derecha cada uno de sus elementos con su correspondiente cantidad de ocurrencias registrada en b problema cuenta ocurrencias(a : [Int], n : Int, b : [Int]){ requiere a == n; requiere b == n; requiere todos([0 a[i] < n i [0..n)]); modifica b; asegura b == [cuenta(i, a) i [0..n)]; aux cuenta(x, c) = [β(x == c[j]) j [0.. c )]; problema reconstruye(a : [Int], n : Int, b : [Int]){ requiere a == n; requiere b == n; asegura ordenado(a); asegura ( i [0..n))cuenta(i, a) == b[i]; aux cuenta(x, c) = [β(x == c[j]) j [0.. c )]; problema init(a : [Int], val : Int, n : Int){ requiere n == a n > 0; asegura todos([a[j] == val, j [0..n)]); problema asigna(a : [Int], desde : Int, cant : Int, val : Int){ requiere desde 0 desde + cant a ; asegura todos([a[j] == val, j [desde..desde + cant)]); 11 12

4 Cuenta ocurrencias void cuenta ocurrencias(int a[], int b[], int n){ init(b,0,n); int i=0; // Pc:i == 0 ( j [0.. b ))b[j] == 0; while (i< n) { // invariante I: 0 i a // ( j [0..i))b[a[j]] == cuenta(a[j], a[0..i)); // variante v: n i, cota 0 b[a[i]]=b[a[i]]+1; i++; // Qc: ( i [0.. a ))cuenta(i, a) == b[i]; 13 Reconstruye el arreglo ordenado a partir de las ocurrencias void reconstruye(int a[], int b[], int n){ int i=0; int j=0; // Pc: i == 0 j == 0; while (i<n) { // invariante I: (0 i n) (0 j n) ordenado(a[0.. b[0..i)) // ( k [0..i))cuenta(k, a[0.. b[0..i))) == b[k]; // variante v:n i asigna(a,j,b[i], i); j=j+b[i]; i++; // Qc: ordenado(a) ( k [0.. a ))cuenta(k, a) == b[k]; void asigna(int a[], int desde, int cant, int val){ int k = desde; // Pc: k == desde; while (k < desde+cant){ // invariante I: (desde k desde + cant) todos([a[m] == val m [desde..k)]) // variante v: desde + cant k, cota 0; a[k] = val; k++; // Qc:todos([a[m] == val m [desde..desde + cant)]); 14 sort count tiene complejidad lineal void sort count(int a[], int n) { int b[n]; // estado e 0; // vale P: a == pre(a) n == a 1 ( i [0.. a )) 0 a i < a ; cuenta ocurrencias(a,b,n); // estado e 1; // vale a== a@e0; // vale ( k [0.. a )) cuenta(k, a) == b[k]; reconstruye(a,b,n); // estado e 2; // vale ordenado(a) ( k [0.. a )) cuenta(k, a) == b[k]; // implica ordenado(a) ( k [0.. a )) cuenta(k, a) == cuenta(k, a@e0); porque b[k] == cuenta(k, a@e0) // implica Q: ordenado(a) mismos(a, pre(a)); ( i [0.. a )) 0 (a@e0) i < a ]); Los elementos de a son mayores o iguales que 0 y menores que la longitud de a. El algoritmo usa un arreglo auxiliar b de la misma longitud que a. Para contar ocurrencias de los elementos de a leemos a una sola vez, de izquierda a derecha, mientras acumulamos en b. Para reconstruir a necesitamos leer b una sola vez, de izquierda a derecha, mientras escribimos a tambïı 1 2n de izquierda a derecha. El algoritmo tiene complejidad O( a )

5 Problema de la bandera holandesa Algoritmo de la bandera holandesa Supongamos que tenemos la siguiente hipótesis adicional: problema dfp(a : [Int], n : Int) { requiere n == a 1; requiere ( i [0.. a )) 0 a i 2; asegura mismos(a, pre(a)) ordenado(a); Queremos un algoritmo de complejidad lineal, O(n) para n = a, pero que no use una estructura de datos adicional para contar ocurrencias. Queremos modificar el arreglo haciendo swaps. La postcondición se puede escribir de la siguiente forma equivalente: asegura mismos(a, pre(a)) ( i, j [0.. a ), i j) a[0..i) == 0 a[i..j) == 1 a[j.. a ) == 2 Abusando notación, definimos: a[d, h) == x ( l [d, h)) a l == x En forma gráfica: i j Algoritmo de la bandera holandesa Programa de la bandera holandesa El invariante se obtiene haciendo variar las variables i, j, k: I: mismos(a, pre(a)) 0 i j k a a[0..i) = 0 a[i..j) == 1 a[k.. a ) == 2 En forma gráfica: 0 1? 2 El invariante es equivalente a la postcondición cuando j==k. Con ésto deducimos la guarda del ciclo. Para inicializar trivialmente un estado que cumple el invariante hacemos: i = 0; j = 0; k = n; asumiendo a == n. void dfp(int a[], int n) { int i = 0; int j = 0; int k = n; while( j!= k ) { if( a[j] == 1 ) else if( a[j] == 2 ) { swap(a,j,k-1); k--; else if( a[j] == 0 ) { swap(a,i,j); i++; 19 20

6 Programa de la bandera holandesa Caso 1: a j == 1 void dfp(int a[], int n) { int i = 0; int j = 0; int k = n; while( j!= k ) { I B :... a[0..i) == 0 a[i..j) == 1 a[k..n) == 2; if( a[j] == 1 ) I... j k a j == 1; else if( a[j] == 2 ) I... j k a j == 2; else if( a[j] == 0 ) I... j k a j == 0; E 1 : mismos(a, pre(a)) 0 i j < k a a j == 1 E 2 : a = a@e 1 j = j@e i = i@e 1 k = k@e 1 implica mismos(a, pre(a)) implica 0 i j k a implica a j 1 == 1 a[i..j 1) == 1 implica a[i..j 1] == 1 implica I I: mismos(a, pre(a)) 0 i j k a Caso 2: a j == 2 Caso 3: a j == E 1 : mismos(a, pre(a)) 0 i j < k a a j == 2 swap(a,j,k-1); E 1 : mismos(a, pre(a)) 0 i j < k a a j == 0 swap(a,i,j); E 2 : a j == (a@e 1 ) i a i == (a@e 1 ) j ( t [0.. a ), t i, t j)a t == a 1 i == i@e 1 j == j@e 1 k == k@e 1 implica mismos(a, pre(a)) 0 i j < k a implica a i == 0 (i < j a j == 1) implica a[0..i] == 0 a(i..j) == 1 a[k.. a ) == 2 i++; E 3 : a == a@e 2 i == i@e j == j@e 2 k = k@e 2 implica mismos(a, pre(a)) implica 0 i 1 j < k a implica (i 1 < j a j == 1) implica E 2 : a j == (a@e 1 ) k 1 a k 1 == (a@e 1 ) j ( t [0.. a ), t j, t k 1) a t == (a@e 1 ) t i == i@e 1 j == j@e 1 k == k@e 1 implica mismos(a, pre(a)) 0 i j < k a implica a k 1 == 2 implica a[0..i) == 0 a[i..j) == 1 a[k 1.. a ) == 2 k--; E 3 : a == a@e 2 i == i@e 2 j == j@e 2 k = k@e 2 1 implica mismos(a, pre(a)) implica 0 i j k a implica implica I 23 24

7 Caso 3: a j == 0 Correctitud del programa la bandera holandesa E 3 : mismos(a, pre(a)) 0 i 1 j < k a (i 1 < j a j == 1) E 4 : a == a@e 2 i == i@e 2 j == j@e k == k@e 2 implica mismos(a, pre(a)) implica 0 i j k a implica (i < j a j 1 == 1) implica implica I Tenemos el cuerpo del ciclo, que (1) preserva el invariante. i = 0; j = 0; k = n; while( j!= k ) { I B :... if( a[j] == 1 ) else if( a[j] == 2 ) { swap(a,j,k-1); k--; else if( a[j] == 0 ) { swap(a,i,j); i++; Correctitud del programa la bandera holandesa Correctitud del programa la bandera holandesa En cada una de las tres ramas, (4) el variante decrece: k j; cota 0 Por construcción, (2) la inicialización establece el invariante: P c : i == 0 j == 0 k == a a == pre(a) implica I : mismos(a, pre(a)) 0 i j k a Además, (3) al salir del ciclo vale Qc: I B: mismos(a, pre(a)) 0 i j == k a implica Qc: mismos(a, pre(a)) ( i, j [0.. a ), i j) a[0..i) == 0 a[i..j) == 1 a[j.. a ) == 2; E 1 : mismos(a, pre(a)) 0 i j < k a a j == 1... E 2 : k == k@e 1 j == j@e implica k j < (k j)@e 1 E 1 : mismos(a, pre(a)) 0 i j < k a a j == 2... swap(a,j,k-1); k--; E 2 : k == k@e 1 1 j == j@e 1 implica k j < (k j)@e 1 E 1 : mismos(a, pre(a)) 0 i j < k a a j == 0... swap(a,i,j); i++; E 2 : k == k@e 1 j == j@e implica k j < (k j)@e

8 Correctitud del programa la bandera holandesa Complejidad del algoritmo de la bandera holandesa Finalmente, (5) cuando el variante pasa la cota, el ciclo termina, ya que k j 0 B. Por lo tanto, el ciclo es correcto respecto de su especificación. Luego, como Qc implica las poscondición del problema (son iguales en este caso), el algoritmo es correcto respecto de su especificación. Cuál es la complejidad del algoritmo? 1. Antes de comenzar las iteraciones, v = a. 2. En cada iteración, el variante decrece estrictamente. 3. Cuando v 0, el ciclo termina. Entonces, el algoritmo realiza a lo sumo a iteraciones (realiza exactamente a iteraciones, dado que en cada paso el variante decrece en exactamente una unidad). El algoritmo tiene complejidad O(n)

Notación Asintótica 2

Notación Asintótica 2 Notación Asintótica 2 mat-151 1 Éxamen Rápido (6 minutos) Cada operación fundamental usa c milisegundos, cuánto tiempo toma contar hasta 1,000,000? Cuál es el valor de N? Cuál es el órden de complejidad

Más detalles

Algoritmos para determinar Caminos Mínimos en Grafos

Algoritmos para determinar Caminos Mínimos en Grafos Problemas de camino mínimo Algoritmos para determinar Caminos Mínimos en Grafos Algoritmos y Estructuras de Datos III DC, FCEN, UBA, C 202 Problemas de camino mínimo Dado un grafo orientado G = (V, E)

Más detalles

Algoritmos de Ordenación

Algoritmos de Ordenación Algoritmos de Ordenación Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Algoritmos comunes - Ordenación Ordenación o clasificación es

Más detalles

Universidad de Valladolid. Departamento de informática. Campus de Segovia. Estructura de datos Tema 4: Ordenación. Prof. Montserrat Serrano Montero

Universidad de Valladolid. Departamento de informática. Campus de Segovia. Estructura de datos Tema 4: Ordenación. Prof. Montserrat Serrano Montero Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 4: Ordenación Prof. Montserrat Serrano Montero ÍNDICE Conceptos básicos Elección de un método Métodos directos

Más detalles

Clases e instancias. Algoritmos y Estructuras de Datos I. Clases e instancias. memoria dinámica.

Clases e instancias. Algoritmos y Estructuras de Datos I. Clases e instancias. memoria dinámica. Algoritmos Estructuras de Datos I Primer cuatrimestre de 2014 Departamento de Computación - FCEN - UBA Programación imperativa - clase 10 Memoria dinámica listas enlazadas Clases e instancias El paquete

Más detalles

NOTACIÓN O GRANDE. El análisis de algoritmos estima el consumo de recursos de un algoritmo.

NOTACIÓN O GRANDE. El análisis de algoritmos estima el consumo de recursos de un algoritmo. NOTACIÓN O GRANDE El análisis de algoritmos estima el consumo de recursos de un algoritmo. Esto nos permite comparar los costos relativos de dos o más algoritmos para resolver el mismo problema. El análisis

Más detalles

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 42

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 42 Máquinas de Turing IIC3242 IIC3242 Máquinas de Turing 1 / 42 Complejidad Computacional Objetivo: Medir la complejidad computacional de un problema. Vale decir: Medir la cantidad de recursos computacionales

Más detalles

Estructuras de Control

Estructuras de Control Algorítmica y Lenguajes de Programación Estructuras de Control Estructuras de Control. Introducción Hasta ahora algoritmos han consistido en simples secuencias de instrucciones Existen tareas más complejas

Más detalles

ORDENAMIENTO Y BÚSQUEDA EN ARREGLOS

ORDENAMIENTO Y BÚSQUEDA EN ARREGLOS 1 ORDENAMIENTO Y BÚSQUEDA EN ARREGLOS Corina Flores Villarroel ORDENAMIENTO EN ARREGLOS Y COLECCIONES Una de las tareas más comunes a la hora de procesar datos es la clasificación u ordenación de los datos.

Más detalles

ESTRUCTURAS REPETITIVAS EN PHP

ESTRUCTURAS REPETITIVAS EN PHP ESTRUCTURAS REPETITIVAS EN PHP Los bucles nos permiten iterar conjuntos de instrucciones, es decir repetir la ejecución de un conjunto de instrucciones mientras se cumpla una condición. Sentencia while

Más detalles

Tipos de datos en S. Lógica y Computabilidad. Codificación de variables y etiquetas de S. Codificación de programas en S

Tipos de datos en S. Lógica y Computabilidad. Codificación de variables y etiquetas de S. Codificación de programas en S Tipos de datos en S Lógica y Computabilidad Verano 2011 Departamento de Computación - FCEyN - UBA Computabilidad - clase 5 Codificación de programas, Halting problem, diagonalización, tesis de Church,

Más detalles

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 45

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 45 Máquinas de Turing IIC3242 IIC3242 Máquinas de Turing 1 / 45 Complejidad Computacional Objetivo: Medir la complejidad computacional de un problema. Vale decir: Medir la cantidad de recursos computacionales

Más detalles

Algoritmos y programas. Algoritmos y Estructuras de Datos I

Algoritmos y programas. Algoritmos y Estructuras de Datos I Algoritmos y programas Algoritmos y Estructuras de Datos I Primer cuatrimestre de 2012 Departamento de Computación - FCEyN - UBA Programación funcional - clase 1 Funciones Simples - Recursión - Tipos de

Más detalles

NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS

NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS 1 NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS Árboles Binarios y Árboles Binarios Ordenados 2 Contenido Árboles binarios Iteradores Árboles binarios ordenados 3 Árboles binarios Algunas definiciones para

Más detalles

Algoritmos Recursivos de Búsqueda y Ordenación y sus tiempos

Algoritmos Recursivos de Búsqueda y Ordenación y sus tiempos Estructura de Datos y Algoritmos Algoritmos Recursivos de Búsqueda y Ordenación y sus tiempos 1. Algoritmos de ordenación recursivos 1.1. Mergesort, Ordenamiento por fusión Mergesort se ejecuta en un tiempo

Más detalles

Sorting++ Herman Schinca. Clase 21. 10 de Junio de 2011

Sorting++ 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 detalles

Límite superior y límite inferior de una sucesión

Límite superior y límite inferior de una sucesión Límite superior y límite inferior de una sucesión Objetivos. Definir las nociones de los límites superior e inferior de una sucesión y estudiar sus propiedades básicas. Requisitos. Supremo e ínfimo de

Más detalles

Análisis de Algoritmos

Análisis de Algoritmos Análisis de Algoritmos Amalia Duch Barcelona, marzo de 2007 Índice 1. Costes en tiempo y en espacio 1 2. Coste en los casos mejor, promedio y peor 3 3. Notación asintótica 4 4. Coste de los algoritmos

Más detalles

Algoritmos glotones. mat-151

Algoritmos glotones. mat-151 Algoritmos glotones (greedy) mat-151 Alonso Ramirez Manzanares Computación y Algoritmos 04.06.2009 Algoritmos glotones Algoritmos utilizados en problemas de optimización. Estos algoritmos siguen típicamente

Más detalles

La eficiencia de los programas

La eficiencia de los programas La eficiencia de los programas Jordi Linares Pellicer EPSA-DSIC Índice General 1 Introducción... 2 2 El coste temporal y espacial de los programas... 2 2.1 El coste temporal medido en función de tiempos

Más detalles

<tipo> Tipo de dato de los elementos del vector

<tipo> Tipo de dato de los elementos del vector Vectores y matrices Declaración Vector (array unidimiensional): []; Tipo de dato de los elementos del vector Identificador de la variable.

Más detalles

Sistemas Operativos Practica 1: procesos y concurrencia.

Sistemas Operativos Practica 1: procesos y concurrencia. Sistemas Operativos Practica 1: procesos y concurrencia. Objetivos: Introducir al alumno a los conceptos de programa, concurrencia, paralelismo y proceso o tarea. Manejo del concepto de concurrencia haciendo

Más detalles

Tema 2: Teorema de estructura de los grupos abelianos finitamente generados.

Tema 2: Teorema de estructura de los grupos abelianos finitamente generados. ESTRUCTURAS ALGEBRAICAS GRADO EN MATEMÁTICAS. CURSO 215/216 Tema 2: Teorema de estructura de los grupos abelianos finitamente generados. 1.1. Grupo abeliano libre. Bases. Definición 1.1. El grupo Z n con

Más detalles

Algoritmos de Búsqueda y Ordenamiento

Algoritmos de Búsqueda y Ordenamiento Departamento de Informática Universidad Técnica Federico Santa María Algoritmos de Búsqueda y Ordenamiento Programación de Computadores IWI--p Prof.: Teddy Alfaro Olave Algoritmos de Búsqueda Los procesos

Más detalles

Estructuras de Repetición (Hacer-Mientras)

Estructuras de Repetición (Hacer-Mientras) Estructuras de Repetición (Hacer-Mientras) Material Original: Prof. Flor Narciso Modificaciones: Prof. Andrés Arcia Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería

Más detalles

Clase 32: Árbol balanceado AVL

Clase 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 detalles

Tema: Métodos de Ordenamiento. Parte 1.

Tema: Métodos de Ordenamiento. Parte 1. Programación IV. Guía 2. 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación IV Tema: Métodos de Ordenamiento. Parte 1. Objetivos Específicos Identificar la estructura de algunos algoritmos

Más detalles

Apuntadores (Punteros)

Apuntadores (Punteros) Apuntadores (Punteros) x9ff10 X int 209 SESION 7 *ptr Definición Llamados también punteros. Un Apuntador es una variable que contiene una dirección de memoria, la cual corresponderá a un dato o a una variable

Más detalles

Estructuras de control

Estructuras de control Estructuras de control Introducción Los algoritmos vistos hasta el momento han consistido en simples secuencias de instrucciones; sin embargo, existen tareas más complejas que no pueden ser resueltas empleando

Más detalles

Ejemplo: El problema de la mochila. Algoritmos golosos. Algoritmos y Estructuras de Datos III. Segundo cuatrimestre 2013

Ejemplo: El problema de la mochila. Algoritmos golosos. Algoritmos y Estructuras de Datos III. Segundo cuatrimestre 2013 Técnicas de diseño de algoritmos Algoritmos y Estructuras de Datos III Segundo cuatrimestre 2013 Técnicas de diseño de algoritmos Algoritmos golosos Backtracking (búsqueda con retroceso) Divide and conquer

Más detalles

Ciclos. Recordando Estructuras de Control Básicas: SELECCIÓN (condición) SECUENCIAL

Ciclos. Recordando Estructuras de Control Básicas: SELECCIÓN (condición) SECUENCIAL Ciclos Fundamentos de Programación Recordando Estructuras de Control Básicas: Una secuencia es una serie de estatutos que se ejecutan uno después de otro. Selección (condición) ejecuta diferentes estatutos

Más detalles

Algoritmos de Strings. Héctor Navarro

Algoritmos de Strings. Héctor Navarro lgoritmos de Strings Héctor Navarro Substrings Dado un string T (posiblemente muy grande) y un patrón P (de tamaño menor), encontrar la primera (o todas) las apariciones de P en T Solución trivial de (NM)

Más detalles

Tema 2 Resolución de EcuacionesNo Lineales

Tema 2 Resolución de EcuacionesNo Lineales Tema 2 Resolución de Ecuaciones No Lineales E.T.S.I. Informática Indice Introducción 1 Introducción 2 Algoritmo del método de Bisección Análisis del 3 4 5 6 Algoritmo de los métodos iterativos Interpretación

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 Á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

Ruta más Corta con una sóla Fuente de Inicio (Single-Source Shortest Paths) DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE

Ruta más Corta con una sóla Fuente de Inicio (Single-Source Shortest Paths) DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE Ruta más Corta con una sóla Fuente de Inicio (Single-Source Shortest Paths) 1 DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE Problema de Encontrar la Ruta más Corta 2 Se requiere llegar de

Más detalles

Tema Árboles generales. 9.2 Árboles binarios 9.3 Árboles de búsqueda

Tema Árboles generales. 9.2 Árboles binarios 9.3 Árboles de búsqueda Informática Haskell Matemáticas Curso 2004-2005 Pepe Gallardo Universidad de Málaga Tema 9. Árboles 9.1 Árboles generales 9.2 Árboles binarios 9.3 Árboles de búsqueda 9.1 Árboles generales Un árbol es

Más detalles

Analisis de algoritmos

Analisis de algoritmos Analisis de algoritmos Eficiencia Es la capacidad de disponer de un recurso. En el caso de los algoritmos, la eficiencia se logra haciendo el mejor uso posible de los recursos del sistema. Recursos Qué

Más detalles

VI Colas de prioridad

VI Colas de prioridad VI Colas de prioridad Una cola de prioridad (cat: cua de prioritat; ing: priority queue) es una colección de elementos donde cada elemento tiene asociado un valor susceptible de ordenación denominado prioridad.

Más detalles

DEFINICION. Ing. M.Sc. Fulbia Torres Asignatura: Estructuras de Datos Barquisimeto 2006

DEFINICION. 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 detalles

PROGRAMACIÓN UNIDADES

PROGRAMACIÓN UNIDADES PROGRAMACIÓN Semestre: Segundo Horas: 90 horas Hrs/sem: 4.5 Créditos: 9 Clave: AI-02 DESCRIPCIÓN DE LA ASIGNATURA Al finalizar el curso el alumno tendrá el conocimiento y la capacidad de implementar programas

Más detalles

Integrantes. Leonardo Herrera Cristian Fernandez Jorge A Mondragón. Análisis y Diseño de Algoritmos. Docente Diana Mabel Díaz Herrera.

Integrantes. Leonardo Herrera Cristian Fernandez Jorge A Mondragón. Análisis y Diseño de Algoritmos. Docente Diana Mabel Díaz Herrera. Integrantes Leonardo Herrera Cristian Fernandez Jorge A Mondragón Análisis y Diseño de Algoritmos Docente Diana Mabel Díaz Herrera HeapSort Universidad Piloto de Colombia Facultad de Ingeniería de Sistemas

Más detalles

Introducción a las Subastas de Múltiples Unidades

Introducción a las Subastas de Múltiples Unidades Introducción Introducción a las Subastas de Múltiples Unidades Alvaro J. Riascos Villegas Abril 16 de 2013 Contenido Introducción 1 Introducción 2 3 4 5 6 7 Introducción Introducción Los principales formatos

Más detalles

Algoritmos y Programación Clase 8

Algoritmos y Programación Clase 8 Algoritmos y Programación Ordenamiento y Búsqueda Anexo: Uso de Procedimientos Sub y Procedimientos Function 1 EXAMEN 1. Lunes 16 de abril 4 pm. 2. Tema: Lo visto hasta la clase de hoy. 2 Contenido Ordenamiento

Más detalles

Sumatorias y productorias (desde 0) Lógica y Computabilidad. Sumatorias y productorias (desde 1)

Sumatorias y productorias (desde 0) Lógica y Computabilidad. Sumatorias y productorias (desde 1) Lógica y Computabilidad Verano 2011 Departamento de Computación - FCEyN - UBA Computabilidad - clase 3 Sumatorias y productorias, cuantificadores acotados, minimización acotada, codificación de pares y

Más detalles

Programación de Computadores 4 Iteraciones y Decisiones. Prof. Javier Cañas. Universidad Técnica Federico Santa María Departamento de Informática

Programación de Computadores 4 Iteraciones y Decisiones. Prof. Javier Cañas. Universidad Técnica Federico Santa María Departamento de Informática Programación de Computadores 4 Iteraciones y Decisiones Prof. Javier Cañas Universidad Técnica Federico Santa María Departamento de Informática Contenido 1 Introducción 2 Operadores Relacionales y Lógicos

Más detalles

Curso de Programación en C. Licenciatura, FCQeI. APUNTADORES.

Curso de Programación en C. Licenciatura, FCQeI. APUNTADORES. APUNTADORES. La memoria de una máquina esta ordenada en forma de celdas numeradas consecutivamente y que se pueden manipular individualmente o en grupos contiguos. La siguiente figura muestra una representación

Más detalles

Complejidad de Algoritmos

Complejidad de Algoritmos Complejidad de Algoritmos Tema 5 Introducción Un algoritmo es una secuencia de instrucciones que resuelve un problema Puede tener diferentes implementaciones Para comparar las diferentes formas (algoritmos)

Más detalles

fundamentos de programación (unidad 4) programación estructurada en Java

fundamentos de programación (unidad 4) programación estructurada en Java fundamentos de programación (unidad 4) programación estructurada en Java Para ver una copia completa de la licencia, acudir a la dirección http://creativecommons.org/licenses/by-nc-sa/2.5/es/legalcode.es

Más detalles

Teoremas de Convergencia

Teoremas de Convergencia Capítulo 24 Teoremas de Convergencia El teorema de la convergencia monótona (Lema 21.3) establece ciertas condiciones sobre una sucesión de funciones medibles para que se puedan permutar los símbolos y

Más detalles

ESTRUCTURAS REPETITIVAS

ESTRUCTURAS REPETITIVAS DOCENTE: Ing. Ronald Rentería Ayquipa MARCO TEÓRICO: ESTRUCTURAS REPETITIVAS La programación estructurada es un paradigma que consiste en la organización de un código en bloques conformados por estructuras

Más detalles

Curso de Programación 1

Curso de Programación 1 Curso de Programación 1 Plan 97 Búsqueda y Ordenación Métodos de búsqueda Existen aplicaciones en las cuales es necesario consultar si un elemento se encuentra dentro de un array. A continuación veremos

Más detalles

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL 1 TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL TECNOLOGÍA DE LA COMPUTADORA FACILITADOR: PARTICIPANTE: DAVID, CHIRIQUÍ 2015 2 Qué es un programa? Un programa informático es un conjunto

Más detalles

Operadores de comparación

Operadores de comparación Operadores de comparación Los operadores de comparación en C son: Igual (==) Distinto (!=) Mayor (>) y Mayor o igual (>=) Menor (

Más detalles

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1 Prologo Agradecimientos Nota de los autores Índice general I III V VII 1 Problemas, algoritmos y programas 1 1.1 Programas y la actividad de la programación.................... 4 1.2 Lenguajes y modelos

Más detalles

ESTRUCTURAS DE CONTROL Y DE SELECCIÓN

ESTRUCTURAS DE CONTROL Y DE SELECCIÓN ESTRUCTURAS DE CONTROL Y DE SELECCIÓN Son aquellas que permiten ejecutar una acción mediante la aplicación de un interrogante o pregunta, el cual si la accion es verdadera o falsa se ejecuta una serie

Más detalles

Capítulo 1: Fundamentos: Lógica y Demostraciones Clase 3: Relaciones, Funciones, y Notación Asintótica

Capítulo 1: Fundamentos: Lógica y Demostraciones Clase 3: Relaciones, Funciones, y Notación Asintótica Capítulo 1: Fundamentos: Lógica y Demostraciones Clase 3: Relaciones, Funciones, y Notación Asintótica Matemática Discreta - CC3101 Profesor: Pablo Barceló P. Barceló Matemática Discreta - Cap. 1: Fundamentos:

Más detalles

Estructuras de Repetición (Repita para)

Estructuras de Repetición (Repita para) Estructuras de Repetición (Repita para) Andrés Arcia Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes Programación Digital I 1 REPITA PARA Fijar

Más detalles

INTRODUCCIÓN. Estructura de Datos Tipos Abstractos de Datos (TAD S) Profs. Lorna Figueroa M. Mauricio Solar F. UTFSM 1 / 2008

INTRODUCCIÓN. Estructura de Datos Tipos Abstractos de Datos (TAD S) Profs. Lorna Figueroa M. Mauricio Solar F. UTFSM 1 / 2008 INTRODUCCIÓN Estructura de Datos Tipos Abstractos de Datos (TAD S) Para poder obtener un programa que resuelva un problema dado, son necesarios varios pasos : La formulación y especificación del problema

Más detalles

Árboles Filogenéticos. BT7412, CC5702 Bioinformática Diego Arroyuelo. 2 de noviembre de 2010

Árboles Filogenéticos. BT7412, CC5702 Bioinformática Diego Arroyuelo. 2 de noviembre de 2010 Unidad 6: Árboles Filogenéticos BT7412, CC5702 Bioinformática Diego Arroyuelo 2 de noviembre de 2010 Temario (Introduction to Computational Molecular Biology Setubal y Meidanis Capítulo 6) 1. Introducción

Más detalles

Extremos en Sucesiones

Extremos en Sucesiones Divulgaciones Matemáticas 2(1) (1994), 5 9 Extremos en Sucesiones Extrema in Sequences José Heber Nieto Departamento de Matemática y Computación Facultad Experimental de Ciencias Universidad del Zulia.

Más detalles

Universidad de Santiago de Chile Facultad de Ciencia Departamento de Matemática y Ciencias de la Computación

Universidad de Santiago de Chile Facultad de Ciencia Departamento de Matemática y Ciencias de la Computación Universidad de Santiago de Chile Facultad de Ciencia Departamento de Matemática y Ciencias de la Computación EJERCICIOS RESUELTOS DE ECUACIONES NO LINEALES Profesor: Jaime Álvarez Maldonado Ayudante: Rodrigo

Más detalles

Análisis probabilístico y Algoritmos Aleatorizados

Análisis probabilístico y Algoritmos Aleatorizados Análisis probabilístico y Algoritmos Aleatorizados Andrés Becerra Sandoval Ponticia Universidad Javeriana 14 de julio de 2007 Lenguajes III Introducción La probabilidad puede ayudarnos a medir la complejidad

Más detalles

Curso: Métodos de Monte Carlo. Unidad 2, Sesión 3: Estimación de volúmenes

Curso: Métodos de Monte Carlo. Unidad 2, Sesión 3: Estimación de volúmenes Curso: Métodos de Monte Carlo. Unidad 2, Sesión 3: Estimación de volúmenes Departamento de Investigación Operativa Instituto de Computación, Facultad de Ingeniería Universidad de la República, Montevideo,

Más detalles

PRÁCTICA No. 13 ÁRBOL BINARIO DE BÚSQUEDA

PRÁ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 detalles

El Juego como Problema de Búsqueda

El Juego como Problema de Búsqueda El Juego como Problema de Búsqueda En este algoritmo identificamos dos jugadores: max y min. El objetivo es encontrar la mejor movida para max. Supondremos que max mueve inicialmente y que luego se turnan

Más detalles

ELO320 Estructuras de Datos y Algoritmos. Arboles Binarios. Tomás Arredondo Vidal

ELO320 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 detalles

Examen escrito de Programación 1. Jueves 5 de febrero de Problema 1 o (3.5 puntos)

Examen escrito de Programación 1. Jueves 5 de febrero de Problema 1 o (3.5 puntos) Examen escrito de Programación 1. Jueves 5 de febrero de 2015 Se debe disponer de un documento de identificación con fotografía sobre la mesa. Se debe comenzar a resolver cada uno de los dos problemas

Más detalles

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

En 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 detalles

INTRODUCCIÓN AL ESTUDIO DE ALGORITMOS Y SU COMPLEJIDAD

INTRODUCCIÓN AL ESTUDIO DE ALGORITMOS Y SU COMPLEJIDAD Alg. y Estr. Datos-I / Fund. Progr.-II (R. Ferrís, J. Albert) 9 INTRODUCCIÓN AL ESTUDIO DE ALGORITMOS Y SU COMPLEJIDAD 9.1. Definición de complejidad y su medida 9.1.1. Introducción El objetivo de este

Más detalles

Notas del curso de Algebra Lineal I. Luis Valero Elizondo

Notas del curso de Algebra Lineal I. Luis Valero Elizondo Notas del curso de Algebra Lineal I Luis Valero Elizondo 11 de septiembre de 2008 Índice general 1. Sistemas de ecuaciones lineales. 4 1.1. Campos............................... 4 1.2. Sumatorias.............................

Más detalles

CONTENIDO 1 Diagrama de flujo 2 Pseudocodigo 3 Diagrama estructurado (nassi-schneiderman)

CONTENIDO 1 Diagrama de flujo 2 Pseudocodigo 3 Diagrama estructurado (nassi-schneiderman) CONTENIDO 1 Diagrama de flujo 2 Pseudocodigo 3 Diagrama estructurado (nassi-schneiderman) Las dos herramientas utilizadas comúnmente para diseñar algoritmos son: Diagrama de Flujo Pseuducodigo 1 Diagrama

Más detalles

LA ALEGRIA DE MULTIPLICAR

LA ALEGRIA DE MULTIPLICAR LA ALEGRIA DE MULTIPLICAR Octavio Montoya$ Profesor Universidad del Tolima t January 22, 2010 Abstract En este documento se presentan dos formas didácticas y divertidas de multiplicar números enteros.

Más detalles

Sucesiones Introducción

Sucesiones Introducción Temas Límites de sucesiones. convergentes. Sucesiones divergentes. Sucesiones Capacidades Conocer y manejar conceptos de sucesiones convergentes y divergentes. Conocer las principales propiedades de las

Más detalles

Ampliación de Estructuras de Datos

Ampliació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 detalles

Programcaión Básica. Secuencias de Control y Repetición. Arturo Vega González.

Programcaión Básica. Secuencias de Control y Repetición. Arturo Vega González. Programación Básica Arturo Vega González a.vega@ugto.mx Division de Ciencias e Ingenierías Universidad de Guanajuato Campus León Sesión 5 Universidad de Guanajuato, DCI, Campus León 1 / 31 Universidad

Más detalles

Operadores y Expresiones

Operadores y Expresiones Operadores y Expresiones Los programas Java constan de datos, sentencias de programas y expresiones. Una expresión es normalmente, una ecuación matemática, tal como 3 * x + 5 * z. En esta expresión, los

Más detalles

Algoritmos sobre secuencias y conjuntos de datos

Algoritmos sobre secuencias y conjuntos de datos Suma de la Subsecuencia Máxima Dept. de Computación, Universidade da Coruña alberto.valderruten@udc.es Índice Suma de la Subsecuencia Máxima 1 Suma de la Subsecuencia Máxima 2 Suma de la Subsecuencia Máxima

Más detalles

Complejidad amortizada

Complejidad amortizada Análisis de algoritmos Complejidad amortizada Dra. Elisa Schaeffer elisa.schaeffer@gmail.com PISIS / FIME / UANL Complejidad amortizada p. 1 Complejidad amortizada La idea en el análisis de complejidad

Más detalles

Compresión de Datos. Método de Huffman. Dpto. Informática

Compresión de Datos. Método de Huffman. Dpto. Informática Compresión de Datos Método de Huffman Manipulación y Preservación de Datos Dpto. Informática Ing. Mariano D'Agostino Introducción La compresión de datos es el proceso de convertir una cadena de datos de

Más detalles

Unidad 3 Combinaciones

Unidad 3 Combinaciones Unidad 3 Combinaciones Combinaciones Contar una selección no ordenada de objetos. Ejemplo Cuántos comités diferentes de tres estudiantes se pueden formar desde un grupo de cuatro estudiantes? R= 4 {1,2,3},

Más detalles

Fundamentos de programación

Fundamentos de programación Fundamentos de programación Estructuras de Control Estructuras de control Estructuras de control Estructura secuencial Estructura alternativa Sentencias if, if else Sentencias if else anidadas El operador

Más detalles

Algoritmos de Ordenamiento

Algoritmos de Ordenamiento Algoritmos de Ordenamiento Fernando A. Lagos B. Copyleft 2007 INDICE 1 Introducción Pág. 3 2 Tipos de Algoritmos Pág. 4 2.1 Algoritmos iterativos Pág. 5 2.2 Algoritmos recursivos Pág. 6 3 Método de la

Más detalles

Equivalencia Entre PDA y CFL

Equivalencia Entre PDA y CFL Equivalencia Entre PDA y CFL El Lenguaje aceptado por un Autómata con Pila Universidad de Cantabria Esquema 1 Introducción 2 3 Lenguaje Aceptado por un Autómata Como en los autómatas finitos, se puede

Más detalles

Ecuaciones Diofánticas

Ecuaciones Diofánticas 2 Ecuaciones Diofánticas (c) 2011 leandromarin.com 1. Introducción Una ecuación diofántica es una ecuación con coeficientes enteros y de la que tenemos que calcular las soluciones enteras. En este tema

Más detalles

Profesorado de Nivel Medio y Superior en Biología Matemática - 1º Cuatrimestre Año 2013 FUNCIÓN CUADRÁTICA

Profesorado de Nivel Medio y Superior en Biología Matemática - 1º Cuatrimestre Año 2013 FUNCIÓN CUADRÁTICA Matemática - º Cuatrimestre Año 0 FUNCIÓN CUADRÁTICA Hemos definido anteriormente la función lineal como una función f: R R de la forma f()a+b con a R y b R, que se representa en el plano mediante una

Más detalles

Teorema del valor medio

Teorema del valor medio Práctica 6 - Parte 1 Teorema del valor medio El teorema del valor medio para derivadas (o teorema de Lagrange) es un resultado central en la teoría de funciones reales. Este teorema relaciona valores de

Más detalles

APLICACIÓN DE ÁRBOLES BINARIOS

APLICACIÓN DE ÁRBOLES BINARIOS PRÁCTICA Nº 6: 2 sesiones (del 22 al 31 de Mayo de 2002) APLICACIÓN DE ÁRBOLES BINARIOS A LA COMPRESIÓN DE FICHEROS DE TEXTO MEDIANTE LA UTILIZACIÓN DE LOS CÓDIGOS DE HUFFMAN 0.- OBJETIVOS El objetivo

Más detalles

UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO

UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO LICENCIATURA EN PRODUCCIÓN INDUSTRIAL. UNIDAD DE APRENDIZAJE: PROGRAMACIÓN Créditos institucionales de la UA: 6 Material visual: Diapositivas Unidad de competencia

Más detalles

Programación Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC.

Programación Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC. Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC. Variables Conceptos de Memoria Una variable es un espacio en la memoria del PC Cada variable tiene un nombre, un tipo, un tamaño y un valor

Más detalles

ALGORITMOS HEURÍSTICOS Y APROXIMADOS. Análisis y diseño de algoritmos II- 2009

ALGORITMOS HEURÍSTICOS Y APROXIMADOS. Análisis y diseño de algoritmos II- 2009 ALGORITMOS HEURÍSTICOS Y APROXIMADOS Análisis y diseño de algoritmos II- 2009 Problemas difíciles : Definiciones, ejemplos y propiedades Análisis y diseño de algoritmos II- 2009 Un viaje a Ciencias de

Más detalles

TEMA 4. ESTRUCTURAS DE CONTROL

TEMA 4. ESTRUCTURAS DE CONTROL M.P. Sesmero, P. de Toledo, F.J. Ordoñez, J. Gómez-Romero, J.A. Iglesias, J.L. Mira Programación TEMA 4. ESTRUCTURAS DE CONTROL Grado en Ingeniería en Tecnologías Industriales Programación CONTENIDOS 4.1.

Más detalles

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

ARBOLES 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 detalles

1 Método de la bisección. 1.1 Teorema de Bolzano Teorema 1.1 (Bolzano) Contenido

1 Método de la bisección. 1.1 Teorema de Bolzano Teorema 1.1 (Bolzano) Contenido E.T.S. Minas: Métodos Matemáticos Resumen y ejemplos Tema 3: Solución aproximada de ecuaciones Francisco Palacios Escuela Politécnica Superior de Ingeniería de Manresa Universidad Politécnica de Cataluña

Más detalles

Guía - Taller # 2 (JAVA)

Guía - Taller # 2 (JAVA) CEET - Distrito Capital Programa de Formación: ADSI 150752 TRIMESTRE VI Conocimiento de Conocimiento: Aplicar diversos estilos de Programación usando herramientas para Desarrollo Web Instructor: Ing. Espec.

Más detalles

Herramientas computacionales para la matemática MATLAB: Estructuras de control

Herramientas computacionales para la matemática MATLAB: Estructuras de control Herramientas computacionales para la matemática MATLAB: Estructuras de control Verónica Borja Macías Mayo 2012 1 Estructuras de control ESTRUCTURAS DE REPETICIÓN: BUCLES Los bucles permiten repetir las

Más detalles

La división euclídea. Algoritmo de Euclides. En esta práctica estudiamos algunos aspectos del algoritmo de Euclides para hallar el Mcd de dos enteros.

La división euclídea. Algoritmo de Euclides. En esta práctica estudiamos algunos aspectos del algoritmo de Euclides para hallar el Mcd de dos enteros. IMD-IS 2011 2012. Sesión de laboratorio 4. El algoritmo de Euclides La hoja de SAGE que corresponde a la práctica puede obtenerse de: http: // personal. us. es/ ebriand/ practica4. sws En esta práctica

Más detalles

TEMA 7: Ficheros. TEMA 7: Ficheros. 7.1.-Concepto de fichero

TEMA 7: Ficheros. TEMA 7: Ficheros. 7.1.-Concepto de fichero TEMA 7: Ficheros 7.1.-Concepto de fichero Todas las estructuras de datos que hemos visto hasta ahora utilizan memoria principal. Esto tiene dos limitaciones importantes: 1. Los datos desaparecen cuando

Más detalles

LABORATORIO 3 ESTRUCTURAS REPETITIVAS WHILE / DO WHILE

LABORATORIO 3 ESTRUCTURAS REPETITIVAS WHILE / DO WHILE LABORATORIO 3 ESTRUCTURAS REPETITIVAS WHILE / DO WHILE 1 OBJETIVOS Al finalizar esta actividad, serás capaz de: Entender el funcionamiento de las estructuras iterativas en general; la(s) condición(es)

Más detalles

Ejemplo, generación de #s aleatorios

Ejemplo, generación de #s aleatorios Ejemplo, generación de #s aleatorios Supón que tienes un generador de números aleatorios enteros [0,2] con distribución uniforme, y tu necesitas generar números con distribución uniforme [0,4]. Alguien

Más detalles

El programa que permite el manejo de la base de datos tiene la siguiente funcionalidad:

El programa que permite el manejo de la base de datos tiene la siguiente funcionalidad: El TAD Diccionario Cuando se usa un conjunto en el diseño de un algoritmo podría no ser necesario contar con operaciones de unión o intersección. A menudo lo que se necesita es simplemente manipular un

Más detalles