Ordenamiento de un arreglo. Algoritmos y Estructuras de Datos I. Algoritmo downsort. Upsort vs downsort

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

Download "Ordenamiento de un arreglo. Algoritmos y Estructuras de Datos I. Algoritmo downsort. Upsort vs downsort"

Transcripción

1 Ordenamiento de un arreglo Algoritmos y Estructuras de Datos I Primer cuatrimestre de 2014 Departamento de Computación - FCEyN - UBA Programación imperativa - clase 8 Algoritmos de ordenamiento II Tenemos un arreglo de un tipo T con una relación de orden ( ) y queremos modificar el arreglo para que sus elementos queden en orden creciente. problema sort<t> (a : [T]) { requiere 1 a ; modifica a; 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 Algoritmo downsort Upsort vs downsort // invariante I : 0 actual a 1 mismos(a, pre(a)) ordenado(a(actual.. a )) actual < a 1 ( x a[0..actual]) x a actual+1 Podemos considerar un algoritmo similar, que en cada paso busque el mínimo elemento y lo ubique al principio de la parte no ordenada del arreglo. Este algoritmo se llama downsort o selection sort. // invariante I : 0 actual a 1 mismos(a, pre(a)) ordenado(a[0..actual)) actual > 0 ( x a[actual.. a )) x a actual 1 Los invariantes de ambos algoritmos provienen de reemplazar distintas constantes en la postcondición del problema: asegura mismos(a, pre(a)) ordenado(a[0.. a )); Si reemplazamos el lado izquierdo en a[0.. a ), tenemos el invariante de upsort (más una condición adicional): I : 0 actual a 1 mismos(a, pre(a)) ordenado(a(actual.. a ))... Si reemplazamos el lado derecho en a[0.. a ), tenemos el invariante de downsort: I : 0 actual a 1 mismos(a, pre(a)) ordenado(a[0..actual))

2 Algoritmo insertion sort Algoritmo insertion sort Consideremos qué sucede ahora si eliminamos la última condición del invariante de downsort: I : 0 i a mismos(a, pre(a)) ordenado(a[0..i)) La función variante es v = n i. Qué dice este invariante? Se puede implementar un algoritmo de ordenamiento sobre esta base? while( i < a.length ) { I : 0 i < a mismos(a, pre(a)) ordenado(a[0..i)) j = i; while( j>0 && a[j] < a[j-1] ) { swap(a, j, j-1); --j; E : 0 i a mismos(a, pre(a)) ordenado(a[0..i + 1)) ++i; 5 6 Supongamos que tenemos la siguiente hipótesis adicional: problema dfp(a : [Z]) { requiere a 1; requiere ( i [0.. a )) 0 a i 2; modifica a; asegura mismos(a, pre(a)) ordenado(a); Reglas: Solamente podemos modificar el arreglo haciendo swaps, y el algoritmo debe tener complejidad O(n). Observar que la postcondición se puede escribir de la siguiente forma equivalente (abusando levemente de la notación): asegura mismos(a, pre(a)) ( i, j [0.. a ), i j) a[0..i) = 0 a[i..j) = 1 a[j.. a ) = 2 En esta expresión, definimos a[d, h) = x ( i [d, h)) a i = x En forma gráfica: i j 7 8

3 El invariante proviene de relajar la variable j: I: mismos(a, pre(a)) 0 i j k a En forma gráfica: 0 1? 2 El invariante es equivalente a la postcondición si j=k, y entonces tenemos la guarda del ciclo. Para inicializar trivialmente el invariante, hacemos: j = 0; k = a.length; j = 0; k = a.length; while( j!= k ) { I B :... if( a[j] == 0 ) I... j k a j = 0 else if( a[j] == 1 ) I... j k a j = 1 else if( a[j] == 2 ) I... j k a j = Caso 1: a j = 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 0 i j k a implica a[i..j 1) = 1 a 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 = E 1 : mismos(a, pre(a)) 0 i j < k a a j = 2 swap(a,j,k-1); E 2 : a j = a k 1 a k 1 = a 1 ( t [0.. a ), t j, k 1)a t = a 1 i = i@e 1 j = j@e 1 k = k@e 1 implica a k 1 = 2 mismos(a, pre(a)) implica a[0..i) = 0 a[i..j) = 1 a[k 1.. a ) =

4 Caso 2: a j = 2 Caso 3: a j = E 2 : mismos(a, pre(a)) 0 i j < k a 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 0 i j k a implica implica I E 1 : mismos(a, pre(a)) 0 i j < k a a j = 0 swap(a,i,j); E 2 : a j = a 1 a i = a 1 ( t [0.. a ), t i, j)a t = a 1 i = i@e 1 j = j@e 1 k = k@e 1 implica a i = 0 (i < j a j = 1) implica a[0..i] = 0 a(i..j) = 1 a[k.. a ) = Caso 3: a j = 0 Caso 3: a j = E 2 : mismos(a, pre(a)) 0 i j < k a a[0..i] = 0 a(i..j) = 1 a[k.. a ) = 2 (i < j a j = 1) ++i; E 3 : a = a@e 2 i = i@e j = j@e 2 k = k@e 2 implica 0 i 1 j < k a implica E 3 : mismos(a, pre(a)) 0 i 1 j < k a (i < j a j = 1) E 3 : a = a@e 2 i = i@e 2 j = j@e k = k@e 2 implica 0 i j k a implica implica I 15 16

5 Tenemos el cuerpo del ciclo, que (1) preserva el invariante. j = 0; k = a.length; while( j!= k ) { I B :... if( a[j] == 0 ) { swap(a,i,j); ++i; else if( a[j] == 1 ) else if( a[j] == 2 ) { swap(a,j,k-1); --k; Por construcción, (2) la inicialización establece el invariante: P c : i = 0 j = 0 k = a a = pre(a) I : mismos(a, pre(a)) 0 i j k a Además, (3) al salir del ciclo vale la postcondición: I B: mismos(a, pre(a)) 0 i j = k a mismos(a, pre(a)) ( i, j [0.. a ), i j) a[0..i) = 0 a[i..j) = 1 a[j.. a ) = En cada una de las tres ramas, (4) el variante decrece: 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 1 Finalmente, (5) cuando el variante pasa la cota, el ciclo termina, puesto que k j 0 B. Por lo tanto, el algoritmo es correcto respecto de su especificación

6 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 (más aún, realiza exactamente a iteraciones, dado que en cada paso el variante decrece en exactamente una unidad). El algoritmo tiene una complejidad de O(n). 21

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

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

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

Algoritmos de Ordenamiento

Algoritmos de Ordenamiento Algoritmos de Ordenamiento mat-151 Alonso Ramírez Manzanares Computación y Algoritmos 12.04 Algoritmos de ordenamiento Entrada: secuencia de números. Salida: permutación

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

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

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

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

Interpretación geométrica de la derivada

Interpretación geométrica de la derivada Interpretación geométrica de la derivada El matemático francés ierre de Fermat (60 665) al estudiar máimos mínimos de ciertas funciones observó que en aquellos puntos en los que la curva presenta un máimo

Más detalles

MAT web:

MAT web: Clase No. 7: MAT 251 Matrices definidas positivas Matrices simétricas Dr. Alonso Ramírez Manzanares Depto. de Matemáticas Univ. de Guanajuato e-mail: alram@ cimat.mx web: http://www.cimat.mx/ alram/met_num/

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

Tipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos

Tipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos Algoritmos y Estructuras de Datos I 1 cuatrimestre de 009 Departamento de Computación - FCEyN - UBA Programación funcional - clase Tipos algebraicos Tipos algebraicos y abstractos ya vimos los tipos básicos

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

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

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

ALGORITMOS DE ORDENAMIENTO COUNTING SORT CHRISTIAN ESTEBAN ALDANA ROZO BRAYAN STIF FORERO CRUZ GIOVANNY GUZMÁN CÉSPEDES JORGE MEJIA

ALGORITMOS DE ORDENAMIENTO COUNTING SORT CHRISTIAN ESTEBAN ALDANA ROZO BRAYAN STIF FORERO CRUZ GIOVANNY GUZMÁN CÉSPEDES JORGE MEJIA ALGORITMOS DE ORDENAMIENTO COUNTING SORT CHRISTIAN ESTEBAN ALDANA ROZO BRAYAN STIF FORERO CRUZ GIOVANNY GUZMÁN CÉSPEDES JORGE MEJIA Profesora: DIANA MABEL DIAZ UNIVERSIDAD PILOTO DE COLOMBIA INGENIERIA

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

Universidad Autónoma del Estado de Hidalgo Instituto de Ciencias Básicas e Ingeniería Área Académica de Computación y Electrónica

Universidad Autónoma del Estado de Hidalgo Instituto de Ciencias Básicas e Ingeniería Área Académica de Computación y Electrónica Universidad Autónoma del Estado de Hidalgo Instituto de Ciencias Básicas e Ingeniería Área Académica de Computación y Electrónica Licenciatura en Sistemas Computacionales Estructura de Datos II Docente:

Más detalles

PRÁCTICA ALGORÍTMICA: EJERCICIOS PROPUESTOS

PRÁCTICA ALGORÍTMICA: EJERCICIOS PROPUESTOS Página 1 de 7 PRÁCTICA ALGORÍTMICA: EJERCICIOS PROPUESTOS EJERCICIOS DE ESTRUCTURA REPETITIVA 1. (Problema 4) Escriba un algoritmo que lea del teclado un número entero y que compruebe si es menor que 5.

Más detalles

Algoritmos y Estructuras de Datos II

Algoritmos y Estructuras de Datos II 16 de marzo de 2015 Contenidos 1 Análisis de algoritmos 2 3 La idea El algoritmo Ejemplo Análisis Ordenación por selección vs. inserción selección: a a[1,i) mínimos ordenados a[i,n] aún no seleccionados

Más detalles

Números naturales, principio de inducción

Números naturales, principio de inducción , principio de inducción. Conjuntos inductivos. Denotaremos por IN al conjunto de números naturales, IN {,,, 4, 5, 6,...}, cuyos elementos son suma de un número finito de unos. Recordemos que IN es cerrado

Más detalles

7.1 Consideraciones. Considere la búsqueda de un libro en una biblioteca. Considere la búsqueda de un nombre en el directorio telefónico.

7.1 Consideraciones. Considere la búsqueda de un libro en una biblioteca. Considere la búsqueda de un nombre en el directorio telefónico. 86 Capítulo 7. ORDENAMIENTO. 7.1 Consideraciones. Considere la búsqueda de un libro en una biblioteca. Considere la búsqueda de un nombre en el directorio telefónico. Si los elementos a ordenar son compuestos

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

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

Práctica IV: Métodos de Newton-Raphson y de la secante, para encontrar las raíces de una función.

Práctica IV: Métodos de Newton-Raphson y de la secante, para encontrar las raíces de una función. Práctica IV: Métodos de Newton-Raphson y de la secante, para encontrar las raíces de una función. Se suele llamar método de Newton-Raphson al método de Newton cuando se utiliza para calcular los ceros

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

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

Solución - práctico 10

Solución - práctico 10 Solución - práctico 10 Complejidad Ejercicio 1 a) Una implementación del algoritmo es la siguiente: /* Procedimiento que se encarga de realizar la unión de los dos conjuntos * ordenados der1 e izq1 son

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

Clase 8 Matrices Álgebra Lineal

Clase 8 Matrices Álgebra Lineal Clase 8 Matrices Álgebra Lineal Código Escuela de Matemáticas - Facultad de Ciencias Universidad Nacional de Colombia Matrices Definición Una matriz es un arreglo rectangular de números denominados entradas

Más detalles

Inducción Matemática Conjuntos Funciones. Matemática Discreta. Agustín G. Bonifacio UNSL. Repaso de Inducción, Conjuntos y Funciones

Inducción Matemática Conjuntos Funciones. Matemática Discreta. Agustín G. Bonifacio UNSL. Repaso de Inducción, Conjuntos y Funciones UNSL Repaso de Inducción, y Inducción Matemática (Sección 1.7 del libro) Supongamos que queremos demostrar enunciados del siguiente tipo: P(n) : La suma de los primeros n números naturales es n(n+1)

Más detalles

Sobre funciones reales de variable real. Composición de funciones. Función inversa

Sobre funciones reales de variable real. Composición de funciones. Función inversa Sobre funciones reales de variable real. Composición de funciones. Función inversa Cuando en matemáticas hablamos de funciones pocas veces nos paramos a pensar en la definición rigurosa de función real

Más detalles

INSTRUMENTACIÓN N AVANZADA. ARRAYS EN LABVIEW Relacionando Datos Arrays y Clusters

INSTRUMENTACIÓN N AVANZADA. ARRAYS EN LABVIEW Relacionando Datos Arrays y Clusters ARRAYS EN LABVIEW Relacionando Datos Arrays y Clusters Objetivos 1. Event Structure 2. Arrays 3. Funciones 4. Ejercicios 5. Cluster 6. Simulación de adquisición de señales de tensión 7. Adquisicion de

Más detalles

Introducción a la Teoría de Grafos

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 Programa Introducción a la teoría de grafos Problemas de camino mínimo Problemas de flujo máximo Programación lineal

Más detalles

Semana05[1/14] Relaciones. 28 de marzo de Relaciones

Semana05[1/14] Relaciones. 28 de marzo de Relaciones Semana05[1/14] 28 de marzo de 2007 Introducción Semana05[2/14] Ya en los capítulos anteriores nos acercamos al concepto de relación. Relación Dados un par de conjuntos no vacíos A y B, llamaremos relación

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

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

Álgebra y Trigonometría Clase 7 Sistemas de ecuaciones, Matrices y Determinantes

Álgebra y Trigonometría Clase 7 Sistemas de ecuaciones, Matrices y Determinantes Álgebra y Trigonometría Clase 7 Sistemas de ecuaciones, Matrices y Determinantes CNM-108 Departamento de Matemáticas Facultad de Ciencias Exactas y Naturales Universidad de Antioquia Copyleft c 2008. Reproducción

Más detalles

Recordemos que utilizaremos, como es habitual, la siguiente notación para algunos conjuntos de números que son básicos.

Recordemos que utilizaremos, como es habitual, la siguiente notación para algunos conjuntos de números que son básicos. Capítulo 1 Preliminares Vamos a ver en este primer capítulo de preliminares algunos conceptos, ideas y propiedades que serán muy útiles para el desarrollo de la asignatura. Se trata de resultados sobre

Más detalles

Semana02[1/23] Conjuntos. 9 de marzo de Conjuntos

Semana02[1/23] Conjuntos. 9 de marzo de Conjuntos Semana02[1/23] 9 de marzo de 2007 Introducción Semana02[2/23] La teoría de conjuntos gira en torno a la función proposicional x A. Los valores que hacen verdadera la función proposicional x A son aquellos

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

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

MATE 3013 DERIVADAS Y GRAFICAS

MATE 3013 DERIVADAS Y GRAFICAS MATE 3013 DERIVADAS Y GRAFICAS Extremos relativos La función f tiene un máximo relativo en el valor c si hay un intervalo (r, s), que contiene a c, en el cual f(c) f(x) para toda x entre r y s. Si además,

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

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

Una topología de los números naturales*

Una topología de los números naturales* Una topología de los números naturales* Divulgación Gabriel Ruiz Hernández Instituto de Matemáticas, UNAM 1 de septimebre de 1997 resumen En este trabajo vamos a describir un espacio topológico X con las

Más detalles

Matemáticas I: Hoja 1

Matemáticas I: Hoja 1 Matemáticas I: Hoja 1 1. Números complejos Hasta ahora, hemos visto que los números reales son aquellos que poseen una expresión decimal y que podemos representar en una recta infinita. No obstante, para

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

4.2. Funciones inyectivas, sobreyectivas y biyectivas

4.2. Funciones inyectivas, sobreyectivas y biyectivas 4.. Funciones inyectivas, sobreyectivas y biyectivas En esta sección estudiaremos tres conceptos básicos sobre funciones. 4... Funciones inyectivas Definición 4.. Sea f una función de en. Diremos que f

Más detalles

Este método se basa en buscar el elemento menor el vector y colocarlo en la primera

Este método se basa en buscar el elemento menor el vector y colocarlo en la primera Lectura ORDENACIÓN DE ARREGLOS Con frecuencia se requiere clasificar u ordenar los elementos de un vector (arreglo unidimensional) en algún orden en particular. Por ejemplo, ordenar un conjunto de números

Más detalles

Problemas de VC para EDVC elaborados por C. Mora, Tema 4

Problemas de VC para EDVC elaborados por C. Mora, Tema 4 Problemas de VC para EDVC elaborados por C. Mora, Tema 4 Ejercicio Determinar las funciones enteras f para las que Solución f( + w) = f()f(w), w C. En primer lugar, f(0) = f(0 + 0) = f(0)f(0) = f(0) 2,

Más detalles

Ecuaciones Lineales en Dos Variables

Ecuaciones Lineales en Dos Variables Ecuaciones Lineales en Dos Variables Una ecuación lineal en dos variables tiene la forma general a + b + c = 0; donde a, b, c representan números reales las tres no pueden ser iguales a cero a la misma

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

Generación de eventos en Procesos de Poisson

Generación de eventos en Procesos de Poisson Generación de eventos en Procesos de Poisson Georgina Flesia FaMAF 26 de abril, 2012 Proceso de Poisson homogéneo N(t), t 0, es un proceso de Poisson homogéneo de razón λ, λ > 0, si: N(0) = 0 proceso comienza

Más detalles

SESIÓN 14 DERIVADAS SUCESIVAS DE UNA FUNCION, DE MÁXIMOS Y MÍNIMOS Y LA CONCAVIDAD DE UNA CURVA APLICANDO EL CRITERIO DE LA SEGUNDA DERIVADA

SESIÓN 14 DERIVADAS SUCESIVAS DE UNA FUNCION, DE MÁXIMOS Y MÍNIMOS Y LA CONCAVIDAD DE UNA CURVA APLICANDO EL CRITERIO DE LA SEGUNDA DERIVADA SESIÓN 14 DERIVADAS SUCESIVAS DE UNA FUNCION, DE MÁXIMOS Y MÍNIMOS Y LA CONCAVIDAD DE UNA CURVA APLICANDO EL CRITERIO DE LA SEGUNDA DERIVADA I. CONTENIDOS: 1. Derivadas sucesivas de una función 2. Concavidad

Más detalles

Diagramas de secuencia

Diagramas de secuencia Facultad de Ingeniería Departamento de Ingeniería de Sistemas y Computación Diagramas de secuencia Fragmentos Combinados: caminos alternativos Departamento de Ingeniería de Sistemas y Computación - Universidad

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

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

TEMA I: LOS CONCEPTOS FUNDAMENTALES DE LA TEORÍA DE LA COMPUTABILIDAD

TEMA I: LOS CONCEPTOS FUNDAMENTALES DE LA TEORÍA DE LA COMPUTABILIDAD 1 Asignatura: Lógica 3 Curso 2004-2005 Profesor: Juan José Acero 20 25 de Octubre del 2004 TEMA I: LOS CONCEPTOS FUNDAMENTALES DE LA TEORÍA DE LA COMPUTABILIDAD 1. El concepto de algoritmo. Los matemáticos

Más detalles

Proyecto 1: Algoritmos de Ordenación

Proyecto 1: Algoritmos de Ordenación Proyecto 1: Algoritmos de Ordenación Algoritmos y Estructuras de Datos II - Laboratorio Docentes: Natalia Bidart, Matías Bordese, Diego Dubois, Leonardo Rodríguez. Objetivos La implementación en C de los

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

1. Ejemplo de clase: La clase Disco 2. Ejemplo de clase: La clase Colección. 3. Relación entre clases: Clientismo

1. Ejemplo de clase: La clase Disco 2. Ejemplo de clase: La clase Colección. 3. Relación entre clases: Clientismo 1. : La clase 2. : La clase Colección 3. Relación entre clases: Clientismo 1 Una clase para modelar el tipo de dato disco Vamos a modelar con una clase, un nuevo tipo de datos, donde los elementos de la

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

Tema 3: El Método Simplex. Algoritmo de las Dos Fases.

Tema 3: El Método Simplex. Algoritmo de las Dos Fases. Tema 3: El Método Simplex Algoritmo de las Dos Fases 31 Motivación Gráfica del método Simplex 32 El método Simplex 33 El método Simplex en Formato Tabla 34 Casos especiales en la aplicación del algoritmo

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

Taller de Informática I Dpto. Computación F.C.E. y N. - UBA 2010

Taller de Informática I Dpto. Computación F.C.E. y N. - UBA 2010 FUNCIONES Definición: Una función es un subprograma que recibe cero o más valores de entrada y retorna un único objeto de salida. Es una tarea independiente que puede o no depender de variables externas.

Más detalles

Programación Dinámica 1

Programación Dinámica 1 Programación Dinámica 1 El método de programación dinámica sirve para resolver problemas combinando las soluciones de subproblemas. Normalmente es usada para resolver problemas de optimización. Al construir

Más detalles

Triangularización Simultanea

Triangularización Simultanea Triangularización Simultanea Antonio M. Oller 21 de Noviembre de 2005 1. Introducción Sabemos que toda matriz sobre C (y en general sobre un cuerpo algebráicamente cerrado) es semejante a una matriz triangular

Más detalles

la solución a una ecuación cuadrática solicitando al usuario los términos de dicha ecuación.

la solución a una ecuación cuadrática solicitando al usuario los términos de dicha ecuación. ALGORITMOS SECUENCIALES: La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente

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

Estudiemos el siguiente problema, propuesto por Wirth y desarrollado por Dijkstra: Una lista de las primeras secuencias que cumplen es:

Estudiemos el siguiente problema, propuesto por Wirth y desarrollado por Dijkstra: Una lista de las primeras secuencias que cumplen es: 25. Algoritmos heurísticos 25.1 Concepto de heurística. Se denomina heurística al arte de inventar. En programación se dice que un algoritmo es heurístico cuando la solución no se determina en forma directa,

Más detalles

Álgebra y trigonometría: Gráficas de ecuaciones y funciones

Álgebra y trigonometría: Gráficas de ecuaciones y funciones Álgebra y trigonometría: Gráficas de ecuaciones y funciones CNM-108 Instituto de Matemáticas Facultad de Ciencias Exactas y Naturales Universidad de Antioquia Este documento es distribuido bajo una licencia

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

Ecuaciones de primer grado

Ecuaciones de primer grado Matemáticas Unidad 16 Ecuaciones de primer grado Objetivos Resolver problemas que impliquen el planteamiento y la resolución de ecuaciones de primer grado de la forma x + a = b; ax = b; ax + b = c, utilizando

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

TUTORIAL PSEINT. Ing. Ronald Rentería Ayquipa. Fundamentos de Programación

TUTORIAL PSEINT. Ing. Ronald Rentería Ayquipa. Fundamentos de Programación TUTORIAL PSEINT Ing. Ronald Rentería Ayquipa Fundamentos de Programación PSEINT Página Oficial: http://pseint.sourceforge.net/ Es un software que interpreta pseudocódigo. Permite la generación de diagramas

Más detalles

Propiedades de los Lenguajes Libres de Contexto

Propiedades de los Lenguajes Libres de Contexto Propiedades de los Lenguajes Libres de Contexto 15 de junio de 2015 15 de junio de 2015 1 / 1 Contenido 15 de junio de 2015 2 / 1 Introducción Introducción Simplificación de CFG s. Esto facilita la vida,

Más detalles

Una función f, definida en un intervalo dterminado, es creciente en este intervalo, si para todo x

Una función f, definida en un intervalo dterminado, es creciente en este intervalo, si para todo x Apuntes de Matemáticas II. CBP_ ITSA APLICACIONES DE LA DERIVADA.- CRECIMIENTO Y DECRECIMIENTO DE UNA FUNCIÓN En una función se puede analizar su crecimiento o decrecimiento al mirar la variación que experimentan

Más detalles

Cálculo de la Recta Tangente

Cálculo de la Recta Tangente Cálculo de la Recta Tangente Nota: f(x) es una función cualquiera a es un valor cualquiera del eje x Introducción Ya aprendimos a calcular la pendiente de la recta tangente a una función f(x), para eso,

Más detalles

Grafos. AMD Grado en Ingeniería Informática. AMD Grado en Ingeniería Informática (UM) Grafos 1 / 30

Grafos. AMD Grado en Ingeniería Informática. AMD Grado en Ingeniería Informática (UM) Grafos 1 / 30 Grafos AMD Grado en Ingeniería Informática AMD Grado en Ingeniería Informática (UM) Grafos / 0 Objetivos Al finalizar este tema tendréis que: Conocer la terminología básica de la teoría de grafos. Pasar

Más detalles

ALGEBRA 1- GRUPO CIENCIAS- TURNO TARDE- Enteros

ALGEBRA 1- GRUPO CIENCIAS- TURNO TARDE- Enteros Resumen teoría Prof. Alcón ALGEBRA 1- GRUPO CIENCIAS- TURNO TARDE- Z = N {0} N Enteros Las operaciones + y. son cerradas en Z, es decir la suma de dos números enteros es un número entero y el producto

Más detalles

Universidad Ricardo Palma

Universidad Ricardo Palma Universidad Ricardo Palma FACULTAD DE INGENIERÍA ESCUELA ACADÉMICO PROFESIONAL DE INGENIERÍA INFORMÁTICA PLAN DE ESTUDIOS 2015-II SÍLABO I. DATOS ADMINISTRATIVOS 1.1 Nombre del curso : Taller Básico de

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

Espacios Topológicos 1. Punto de Acumulación. Al conjunto de puntos de acumulación de A se le denomina el conjunto derivado de A (A a Notación).

Espacios Topológicos 1. Punto de Acumulación. Al conjunto de puntos de acumulación de A se le denomina el conjunto derivado de A (A a Notación). Espacios Topológicos 1 Punto de Acumulación Definición: Sea A un subconjunto arbitrario de R n, se dice que x R n es un punto de acumulación de A si toda bola abierta con centro x contiene un punto A distinto

Más detalles

3. Algoritmos de puntos interiores para. Programación Lineal Introducción CO-5411 (S08) 23/02/

3. Algoritmos de puntos interiores para. Programación Lineal Introducción CO-5411 (S08) 23/02/ CO-5411 S08) 23/02/2008 35 3. Algoritmos de puntos interiores para Programación Lineal 3.1. Introducción A nales de la década de los años 40, George B. Dantzig diseña el algoritmo Simplex y da comienzo

Más detalles

CONTINUIDAD Y DERIVABILIDAD 1.- CONTINUIDAD

CONTINUIDAD Y DERIVABILIDAD 1.- CONTINUIDAD CONTINUIDAD Y DERIVABILIDAD Continuidad. Derivabilidad. 1.- CONTINUIDAD 1.1 FUNCIÓN CONTINUA EN UN PUNTO Decimos que f es continua en a si: Lim f( ) = f( a) a Para que una función sea continua en un punto

Más detalles

CAPITULO II ORDENAMIENTO Y BUSQUEDA. Ivan Medrano Valencia

CAPITULO II ORDENAMIENTO Y BUSQUEDA. Ivan Medrano Valencia CAPITULO II ORDENAMIENTO Y BUSQUEDA Ivan Medrano Valencia ORDENACIÓN La ordenación o clasificación de datos (sort en inglés) es una operación consistente en disponer un conjunto estructura de datos en

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

Retículos y Álgebras de Boole

Retículos y Álgebras de Boole Retículos y Álgebras de Boole Laboratorio de Matemática Discreta Jesús Martínez Mateo jmartinez@fi.upm.es Práctica 1. Ordenación topológica A. Herramientas necesarias Para la práctica que vamos a realizar

Más detalles

Semana03[1/17] Funciones. 16 de marzo de Funciones

Semana03[1/17] Funciones. 16 de marzo de Funciones Semana03[1/17] 16 de marzo de 2007 Introducción Semana03[2/17] Ya que conocemos el producto cartesiano A B entre dos conjuntos A y B, podemos definir entre ellos algún tipo de correspondencia. Es decir,

Más detalles

Teoría de la Probabilidad Tema 2: Teorema de Extensión

Teoría de la Probabilidad Tema 2: Teorema de Extensión Teoría de la Probabilidad Tema 2: Teorema de Extensión Alberto Rodríguez Casal 25 de septiembre de 2015 Definición Una clase (no vacía) A de subconjuntos de Ω se dice que es un álgebra si A es cerrada

Más detalles

Algebra lineal y conjuntos convexos

Algebra lineal y conjuntos convexos Apéndice A Algebra lineal y conjuntos convexos El método simplex que se describirá en el Tema 2 es de naturaleza algebraica y consiste en calcular soluciones de sistemas de ecuaciones lineales y determinar

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

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

Unidad Temática 3: Probabilidad y Variables Aleatorias

Unidad Temática 3: Probabilidad y Variables Aleatorias Unidad Temática 3: Probabilidad y Variables Aleatorias 1) Qué entiende por probabilidad? Cómo lo relaciona con los Sistemas de Comunicaciones? Probabilidad - Definiciones Experimento aleatorio: Un experimento

Más detalles

Capítulo VI. Algoritmos: Ordenamiento

Capítulo VI. Algoritmos: Ordenamiento Capítulo VI Algoritmos: Ordenamiento VI.1. Algoritmos Un algoritmo es una secuencia de instrucciones precisas para llevar a cabo una tarea. Ya hemos visto algunos ejemplos: un algoritmo para resolver el

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

Unidad 5. La derivada. 5.2 La derivada de una función

Unidad 5. La derivada. 5.2 La derivada de una función Unidad 5 La derivada 5. La derivada de una función A continuación trataremos uno de los conceptos fundamentales del Cálculo, que es el de la derivada. Este concepto es un ite que está estrecamente ligado

Más detalles

Resolución de Problemas y Algoritmos Clase 6: Repetición (continuación)

Resolución de Problemas y Algoritmos Clase 6: Repetición (continuación) Resolución de Problemas y Algoritmos Clase 6: Repetición (continuación) Dr. http://cs.uns.edu.ar/~sag Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Bahía Blanca,

Más detalles