CURSO DE PROGRAMACIÓN COMPETITIVA URJC
|
|
|
- Yolanda Marina Navarro García
- hace 7 años
- Vistas:
Transcripción
1 CURSO DE PROGRAMACIÓN COMPETITIVA URJC Sesión 2 (3ª Semana) David Morán ([email protected]) Juan Quintana ([email protected]) Sergio Pérez ([email protected]) 1
2 Contenidos Complejidad en tiempo y espacio Estructuras de Datos Básicas Arrays, Matrices Listas, Pilas, Colas Árboles Generales y Binarios 2
3 Contenidos Algoritmos de Ordenamiento y Búsqueda Bubble Sort, Selection Sort, Merge Sort, Quick Sort Colas de Prioridad Búsqueda Binaria, Búsqueda Ternaria Exponenciación Logarítmica 3
4 Complejidad Motivación: No se admite cualquier solución Restricciones: Tiempo de ejecución Memoria utilizada 4
5 Complejidad TLE (Time limit exceeded) rebasó el tiempo asignado condición muy restrictiva MLE (Memory limit exceeded) agotó la memoria asignada el límite no suele ser muy ajustado (depende de la competición) 5
6 Complejidad Según la competición Especificaciones del juez (CPU/Cores, RAM, ) Sesión de pruebas antes del concurso De qué me sirve esto? Ejemplo: SWERC 18 era imposible conseguir TLE adrede 6
7 Complejidad En muchas competiciones formales te dan las especificaciones de la computadora donde se llevarán a cabo todas las evaluaciones De qué me sirve esto? 7
8 Complejidad Observar un problema y pensar, Qué complejidad se necesita? cuánto tarda en ejecutarse? cuánta memoria consume? Formular la complejidad exacta en tiempo y memoria es laborioso... 8
9 Complejidad NO necesitamos realizar un cálculo exacto de la complejidad (ni tendremos tiempo) Un cálculo intuitivo a ojo nos sirve para realizar una estimación 9
10 Complejidad Estimar la complejidad en tiempo: Contar bucles anidados Conocer la complejidad de: funciones utilizadas estructuras de datos y sus operaciones Siempre pensar en el peor caso! 10
11 Complejidad Notación O-grande cota superior asintótica cómo se comporta nuestro algoritmo cuando el tamaño del problema (n) crece indefinidamente? Nunca será mayor que su cota (a partir de cierto punto x 0 ) 11
12 Complejidad 12
13 Complejidad 13
14 Complejidad 14
15 Complejidad Para O(Lg(N)) N => [0, 2¹⁰⁰⁰⁰⁰⁰] Para O(N) N => [0, ] Para O(NLg(N)) N => [0, ] Para O(N²) N => [0, 5.000] Para O(N³) N => [0, 500] Para O(N⁴) N => [0, 60] Para O(2^N) N => [0,25] Para O(N!) N => [0,12] 15
16 Complejidad Ejemplo 1 16
17 Complejidad Ejemplo 2 17
18 Estructuras de Datos Básicas Vectores Listas Pilas Colas Colas de prioridad (heap) Map (estructura <clave,valor>) Set (AVL) 18
19 Estructuras de Datos Básicas Vectores Estructura en la cual se guardan valores sobre un elemento Funciona como un array, en memoria se guarda en espacios contiguos 19
20 Estructuras de Datos Básicas Vectores / Vector Si crece en mucha medida sin una previa reserva puede ser mortal! Su tamaño puede cambiar dinámicamente y esto lo convierte en un objetivo ideal para crear matrices dispersas El equivalente en Java podría ser ArrayList 20
21 Estructuras de Datos Básicas Listas / List Estructura en la cual se guardan valores sobre un elemento, insertando en cualquier lugar un nuevo elemento Posiciones de memoria no-contiguas Inserciones y borrados mucho más fáciles de lograr internamente 21
22 Estructuras de Datos Básicas Listas / List No se puede tener acceso directo a un elemento en específico (salvo primero o último) Puede servir tanto de pila como de cola Equivalente en Java: LinkedList 22
23 Estructuras de Datos Básicas Pilas / stack Estructura donde el último elemento en llegar es el primero en salir (LIFO) No utiliza espacio contiguo de memoria Sólo se puede insertar elementos apilándolos Sólo se puede pedir elementos del tope de la pila 23
24 Estructuras de Datos Básicas Pilas / stack En algunos casos, la pila puede simular una pila de sistema para reducir el tiempo de ejecución Ideal para DFS y otros algoritmos recursivos Equivalente en Java: Stack (obsoleto) 24
25 Estructuras de Datos Básicas Colas / queue Estructura donde el primer elemento en llegar es el primero en salir (FIFO) No utiliza espacio contiguo de memoria Sólo se puede insertar elementos al final (encolando) 25
26 Estructuras de Datos Básicas Colas / queue Sólo se puede pedir el elemento del principio de la cola Ideal para BFS Equivalente en Java: Queue 26
27 Estructuras de Datos Básicas Colas de prioridad / priority_queue Se ordenan de mayor a menor sus elementos (prioridad), internamente se puede representar como un heap (montículo) Solo se puede sacar el elemento tope de la estructura (en este caso el mayor elemento vendrá primero) Equivalente en Java: PriorityQueue 27
28 Estructuras de Datos Básicas Mapa / map Contenedor asociativo que guarda claves únicas y les asocia a un valor Se puede acceder directamente a elementos guardados si se coloca su clave, en tal caso, se devolverá el valor asociado Al ser un árbol binario balanceado, todas sus operaciones son logarítmicas (también podría ser tabla hash) Equivalente en Java: HashMap / TreeMap 28
29 Estructuras de Datos Básicas Conjuntos / set Árbol binario balanceado, ordena naturalmente de menor a mayor (podría ser tabla hash) No admite elementos repetidos Equivalente en Java: TreeSet / HashSet 29
30 Estructuras de Datos Básicas Arboles Binarios Estructura que tiene un nodo raíz Desde el nodo raíz podrán haber hasta dos hijos, de esos hijos pueden haber otros dos hijos más y así sucesivamente. 30
31 Estructuras de Datos Básicas Arboles Binarios Se puede implementar con punteros (llevando cuenta en una estructura aparte cuál es el nodo derecho e izquierdo) Con arrays, teniendo en cuenta que el índice 0 es la raíz, el hijo izquierdo sería 0*2+1 y el derecho sería 0*2+2 (para el índice n, el hijo izquierdo será n*2+1 y el derecho n*2+2) 31
32 Estructuras de Datos Básicas Árboles Generales Implementándolos a través de una clase llevando cuenta del nodo raíz y en cada nodo llevar cuenta de los hijos en un array. Ideales para Tries (futuro) 32
33 Estructuras de Datos Básicas Estructura Adición Deleción Búsqueda Vector / Array O(1)* O(1)* O(N)* Lista O(1) O(1) O(N) Pila O(1) O(1) O(N) Cola O(1) O(1) O(N) Set O(LgN)* O(LgN)* O(LgN)* Map O(LgN)* O(LgN)* O(LgN) Priority_Queue O(LgN) O(LgN) O(N) 33
34 Algoritmos de Ordenamiento Algunos problemas requieren tener ordenados una serie de elementos para dar una respuesta Algoritmos de ordenación Estructuras de datos ordenadas es importante su eficiencia 34
35 Algoritmos de Ordenamiento BubbleSort y SelectionSort Complejidad: O(n²) (ineficientes) No se incluyen en las bibliotecas estándar Se implementan como ejercicio de aprendizaje 35
36 Algoritmos de Ordenamiento Quicksort / Mergesort Complejidad: O(nLog(n)) Ya están implementadas en las bibliotecas básicas No hay que programarlos! 36
37 Algoritmos de Ordenamiento C++ std:sort() Java Collections.sort() -> MergeSort* Arrays.sort() -> Quicksort* (para tipos primitivos) *En realidad son variantes más eficientes 37
38 Búsqueda Binaria Se implementan sobre funciones monótonas crecientes / decrecientes Para todo x se tiene que cumplir: f(x) > f(x+1) ó f(x) < f(x+1) Su complejidad es logarítmica 38
39 Búsqueda Binaria 39
40 Búsqueda Binaria Pseudocódigo: inferior = 0, superior = N mientras superior-inferior > 1 medio = (superior+inferior)/2 si f(medio) < objetivo inferior = medio sino superior = medio 40
41 Búsqueda Ternaria Se implementan sobre funciones parabólicas donde haya un solo punto mínimo ó máximo Su complejidad es 2*Log 3 (N) No es muy común encontrarse con este tipo de problemas 41
42 Búsqueda Ternaria 42
43 Búsqueda Ternaria Pseudocódigo: inferior = 0, superior = N mientras superior-inferior > 2 m1 = (superior+inferior*2)/3 m2 = (superior*2+inferior)/3 si f(m1) < f(m2) inferior = m1 sino superior = m2 43
44 Exponenciación Logarítmica Una forma de elevar a^b siempre que b sea entero Se deja a ejercicio razonar como se haría en una matriz Parte de la base de divide y vencerás y de la propiedad de que a ^ b * a ^ b = a ^ (b+b) 44
45 Exponenciación Logarítmica Pseudocódigo si b == 1 retornar a sino tmp = f(a, b/2) si b % 2 (impar) retornar tmp*tmp*a sino retornar tmp*tmp 45
46 Exponenciación Logarítmica Ejemplo: 2¹⁰ => 2⁵*2⁵ 2⁵ => 2²*2²*2 2² => 2¹*2¹ 2¹ = 2 46
47 Exponenciación Logarítmica Ejemplo: 2¹⁰ => 2⁵*2⁵ = 32*32 = ⁵ => 2²*2²*2 = 4*4*2 = 32 2² => 2¹*2¹ = 2*2 = 4 2¹ = 2 47
48 Semana que viene Algoritmos Voraces Grafos 48
49 Hasta la próxima semana! Ante cualquier duda sobre el curso o sobre los problemas podéis escribirnos (preferiblemente copia a los tres) David Morán ([email protected]) Juan Quintana ([email protected]) Sergio Pérez ([email protected]) 49
Estructuras de datos Listas y árboles
Estructuras de datos Listas y árboles Dra. Elisa Schaeffer [email protected] PISIS / FIME / UANL Listas y árboles p. 1 Listas Listas son estructuras un poco más avanzadas que puros arreglos, como
Planificaciones Algoritmos y Programación II. Docente responsable: CALVO PATRICIA MABEL. 1 de 8
Planificaciones 7541 - Algoritmos y Programación II Docente responsable: CALVO PATRICIA MABEL 1 de 8 OBJETIVOS Que el estudiante, ante un problema, pueda indicar cuáles son los los Tipos de Datos Abstractos
Planificaciones Algoritmos y Programación II. Docente responsable: JUAREZ ANDRES ALBERTO. 1 de 9
Planificaciones 7541 - Algoritmos y Programación II Docente responsable: JUAREZ ANDRES ALBERTO 1 9 OBJETIVOS Introducir los conceptos POO, diseño algoritmos y estructuras datos, utilizando nociones eficiencia
EDA. Tema 8 Colas de Prioridad: Heaps
EDA. Tema 8 Colas de Prioridad: Heaps Natividad Prieto Sáez. DSIC EDA, T-8. Curso 02/03. N.Prieto p.1/55 Objetivos Estudio de las definiciones asociadas a las Colas de Prioridad: Especificación: operaciones
Contenido. Contenido - IX. 1 Encapsulamiento a través de clases y objetos Introducción al lenguaje de programación Java...
Contenido - IX Contenido 1 Encapsulamiento a través de clases y objetos... 1 1.1 Introducción... 2 1.2 Clases y objetos... 2 1.2.1 Las clases... 2 1.2.2 Miembros de la clase... 3 1.2.3 Interfaz y encapsulamiento...
Planificaciones Algoritmos y Programación II. Docente responsable: CALVO PATRICIA MABEL. 1 de 6
Planificaciones 7504 - Algoritmos y Programación II Docente responsable: CALVO PATRICIA MABEL 1 de 6 OBJETIVOS Que el alumno maneje de modo correcto el diseño de un TDA de acuerdo a las exigencias de una
Planificaciones Algoritmos y Programación II. Docente responsable: CALVO PATRICIA MABEL. 1 de 6
Planificaciones 7504 - Algoritmos y Programación II Docente responsable: CALVO PATRICIA MABEL 1 de 6 OBJETIVOS Que el alumno maneje de modo correcto el diseño de un TDA de acuerdo a las exigencias de una
Métodos de Ordenamiento. Unidad VI: Estructura de datos
Métodos de Ordenamiento Unidad VI: Estructura de datos Concepto de ordenación La ordenación de los datos consiste en disponer o clasificar un conjunto de datos (o una estructura) en algún determinado orden
ASIGNATURA: (TIS-106) Estructuras de Datos II DOCENTE: Ing. Freddy Melgar Algarañaz TEMA 4. Montículos binarios (heaps)
TEMA 4. Montículos binarios (heaps) Veamos otro tipo especial de árbol binario, los llamados heaps (montículos), que se pueden representar eficazmente con un vector. Definición: un montículo de máximos
UNIVERSIDAD AUTÓNOMA DE AGUASCALIENTES CENTRO DE CIENCIAS BÁSICAS DEPARTAMENTO DE SISTEMAS ELECTRÓNICOS OBJETIVO GENERAL MÉTODOS DIDÁCTICOS EVALUACIÓN
UNIVERSIDAD AUTÓNOMA DE AGUASCALIENTES CENTRO DE CIENCIAS BÁSICAS DEPARTAMENTO DE SISTEMAS ELECTRÓNICOS MATERIA: ESTRUCTURAS DE DATOS HRS. T/P: 2/3 CARRERA: LIC. EN TECNOLOGÌAS DE INFORMACIÓN CRÉDITOS:
Análisis y Diseño de Algoritmos
Análisis y Diseño de Algoritmos Ordenamiento Heapsort y Quicksort DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE Heaps Un Heap es una estructura de datos binaria Un arreglo que representa
DATOS DE IDENTIFICACIÓN DEL CURSO Ciencias Computacionales Estructuras y algoritmos
DEPARTAMENTO: ACADEMIA A LA QUE PERTENECE: NOMBRE DE LA MATERIA: DATOS DE IDENTIFICACIÓN DEL CURSO Ciencias Computacionales Estructuras y algoritmos Estructuras de Datos CLAVE DE LA MATERIA: CC202 CARÁCTER
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
Teoría de Grafos. Herramientas de programación para procesamiento de señales
Teoría de Grafos Herramientas de programación para procesamiento de señales Indice Nociones básicas: Definiciones Ejemplos Propiedades Nociones avanzadas: Grafos planares Árboles Representación en computadora
Un árbol binario T se define como un conjunto finito de elementos, llamados nodos, de forma que:
Instituto Universitario de Tecnología Industrial Rodolfo Loero Arismendi I.U.T.I.R.L.A. ÁRBOLES Sección 3DA Asignatura: Estructura de Datos Lenguaje (C). Ciudad Bolívar _ abril_ 2006. Introducción El siguiente
Taller de Programación I. Tema 08: Estructuras Dinámicas de Datos en Java
INACAP Universidad Tecnológica de Chile Sede Santiago Centro Taller de Programación I Curso Java J2SE Tema 08: Estructuras Dinámicas de Datos en Java Ing. Manuel López Ramos Parte I Qué son las estructuras
Examen de Estructuras de Datos y Algoritmos. (Modelo 2)
Examen de Estructuras de Datos y Algoritmos (Modelo 2) 17 de junio de 2009 1. Se dispone de una tabla hash de tamaño 12 con direccionamiento abierto y sondeo cuadrático. Utilizando como función hash la
Examen de Estructuras de Datos y Algoritmos. (Modelo 1)
Examen de Estructuras de Datos y Algoritmos (Modelo 1) 17 de junio de 2009 1. Qué rotación se necesita para transformar el árbol de la figura en un árbol AVL? a) Rotación simple izquierda-izquierda b)
Contenido. Prólogo... Capítulo 1. Algoritmos y estructuras de datos... 1. Introducción... 24
Contenido Prólogo... vii Capítulo 1. Algoritmos y estructuras de datos... 1 Introducción... 2 1.1. Tipos de datos... 2 1.1.1. Tipos primitivos de datos... 3 1.1.2. Tipos de datos compuestos y agregados...
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
5 Métodos de Ordenamiento. 5.1 Métodos de Ordenamiento Internos Burbuja Quicksort Heapsort Inserción Simple 5.1.
5 Métodos de Ordenamiento 5.1 Métodos de Ordenamiento Internos 5.1.1 Burbuja 5.1.2 Quicksort 5.1.3 Heapsort 5.1.4 Inserción Simple 5.1.5 Shellsort 5 Métodos de Ordenamiento 5.1 Ordenamiento Interno 5.1
Tema: Métodos de Ordenamiento. Parte 3.
Programación IV. Guía No. 5 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación IV Tema: Métodos de Ordenamiento. Parte 3. Objetivos Específicos Identificar la estructura de algunos algoritmos
UNIVERSIDAD AUTONOMA DE MADRID ESCUELA POLITÉCNICA SUPERIOR ESTRUCTURAS DE DATOS Y ALGORITMOS
UNIVERSIDAD AUTONOMA DE MADRID ESCUELA POLITÉCNICA SUPERIOR ESTRUCTURAS DE DATOS Y ALGORITMOS Curso 2008-09 Examen parcial APELLIDOS: NOMBRE: 1. (0.5 puntos) Enumera las características de un algoritmo
Ordenamiento (Sorting)
Ordenamiento (Sorting) El problema del ordenamiento Ordenar: arreglo[α] arreglo[α], donde α es un tipo tal que está definida la relación < α Uno de los problemas más clásicos, útiles y estudiados de la
Federico Peinado
Federico Peinado www.federicopeinado.es Depto. de Ingeniería del Software e Inteligencia Artificial disia.fdi.ucm.es Facultad de Informática www.fdi.ucm.es Universidad Complutense de Madrid www.ucm.es
Tema 3. Análisis de costes
Tema 3. Análisis de costes http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, sanchiz}@icc.uji.es Estructuras de datos y de la información
Introducción Supongamos un subconjunto de n elementos X = {e 1,,e n de un conjunto referencial Y, X Y. Dentro de Y se define una relación de orden tot
Algoritmos de ordenación Análisis y Diseño de Algoritmos Algoritmos de ordenación Algoritmos básicos: Θ(n 2 ) Ordenación por inserción Ordenación por selección Ordenación por intercambio directo (burbuja)
Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap)
Práctico 4 Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap) Clasificación de ejercicios: (I) Imprescindibles (R) Recomendados (C) Complementarios Árboles balanceados (AVL)
Introducción al Análisis del Coste de Algoritmos
1/11 Introducción al Análisis del Coste de Algoritmos Josefina Sierra Santibáñez 7 de noviembre de 2017 2/11 Eficiencia de un Algoritmo Analizar un algoritmo significa, en el contexto de este curso, predecir
ÍNDICE 1. Índice Listas ordenadas Operaciones permitidas Pilas Operaciones permitidas...
ÍNDICE 1 Índice Índice 1 1. Introducción 2 2. Estructuras de datos 3 2.1. Consideraciones generales a todas las estructuras de datos......... 3 2.2. Listas...................................... 3 2.2.1.
Colas deprioridad y heaps
Colas deprioridad y heaps Colas de prioridad Numerosas aplicaciones Sistemas operativos, algoritmos de scheduling, gestión de colas en cualquier ambiente, etc. La prioridad en general la expresamos con
ESTRUCTURA DE DATOS: Tema 5. Ordenamiento y Búsqueda
ESTRUCTURA DE DATOS: Tema 5. Ordenamiento y Búsqueda Presenta: David Martínez Torres Universidad Tecnológica de la Mixteca Instituto de Computación Oficina No. 37 [email protected] Contenido 1. Ordenamiento
Algorítmica y Complejidad. Tema 3 Ordenación.
Algorítmica y Complejidad Tema . Introducción.. Algoritmo de inserción.. Algoritmo de selección.. Algoritmo de la burbuja.. Algoritmo heapsort.. Algoritmo quicksort. 7. Algoritmo countingsort.. Algoritmo
TIPOS ABSTRACTOS DE DATOS EN HASKELL
TIPOS ABSTRACTOS DE DATOS EN HASKELL ÍNDICE GENERAL 1. Introducción a Haskell 2. Tipos abstractos de datos en Haskell 3. TAD Grafo 4. TAD Montículos 5. Bibliografía INTRODUCCIÓN A HASKELL 1. Introducción
Análisis y Complejidad de Algoritmos. Arboles Binarios. Arturo Díaz Pérez
Análisis y Complejidad de Algoritmos Arboles Binarios Arturo Díaz Pérez Arboles Definiciones Recorridos Arboles Binarios Profundidad y Número de Nodos Arboles-1 Arbol Un árbol es una colección de elementos,
Métodos de ordenamiento:
Métodos de ordenamiento: 0) Intercambio: a) Idea: El algoritmo de intercambio aunque es el más sencillo de implementar es uno de los más ineficientes en rendimiento. Se basa en la idea de buscar cada vez
SÍLABO DE ESTRUCTURA DE DATOS
SÍLABO DE ESTRUCTURA DE DATOS I. DATOS GENERALES 1.1. Carrera Profesional : Ingeniería de Sistemas 1.2. Área Académica : Ingeniería de Sistemas 1.3 Ciclo : III 1.4. Semestre : 2014-I 1.5. Prerrequisito
Colas con prioridad, montículos y el heapsort. Lección 18
Colas con prioridad, montículos y el heapsort Lección 18 Cola con prioridad Cola con prioridad: Se pueden añadir elementos en cualquier orden Los elementos se extraen por orden según su prioridad Cola
Algoritmos Iterativos de Búsqueda y Ordenación y sus tiempos
Estructura de Datos y Algoritmos Algoritmos Iterativos de Búsqueda y Ordenación y sus tiempos 1. Algorimos de ordenación Discutiremos el problema de ordenar un array de elementos. A los efectos de simplificar
Algoritmos y Estructuras de Datos Tema 2: Diseño de Algoritmos
Algoritmos y Estructuras de Datos Tema 2: Diseño de Algoritmos 1! 1. Algoritmos recursivos " 1.1 Algoritmos recursivos. Recursión simple " 1.2 Algoritmos con vuelta atrás y ejemplos! 2. Complejidad de
ALGORITMOS Y ESTRUCTURAS DE DATOS
ALGORITMOS Y ESTRUCTURAS DE DATOS Año 2017 Carrera/ Plan: Licenciatura en Informática Plan 2003-07/2012/2015 Licenciatura en Sistemas Plan 2003-07/2012/2015 Analista Programador Universitario Plan 2007/2015
Unidad III: Estructuras lineales
Unidad III: Estructuras lineales Listas En Ciencias de la Computación, una lista enlazada es una de las estructuras de datos fundamentales, y puede ser usada para implementar otras estructuras de datos.
DISEÑO DE UN ANIMADOR DE ALGORITMOS DE BÚSQUEDA Y ORDENACIÓN ( ID2012/055 )
MEMORIA DEL PROYECTO TITULADO: DISEÑO DE UN ANIMADOR DE ALGORITMOS DE BÚSQUEDA Y ORDENACIÓN ( ID2012/055 ) PRESENTADO POR: María Luisa Pérez Delgado María Luisa Pérez Delgado Dentro del marco del proyecto
Estructuras de datos: Árboles binarios de
Estructuras de datos: Árboles binarios de búsqueda, Facultad de Informática Universidad de A Coruña Table of Contents Árboles binarios de búsqueda 1 Árboles binarios de búsqueda 2 Table of Contents Árboles
Métodos de ordenamiento:
Métodos de ordenamiento: 0) Intercambio: a) Idea: El algoritmo de intercambio aunque es el más sencillo de implementar es uno de los más ineficientes en rendimiento. Se basa en la idea de buscar cada vez
Programación TADs Colecciones Conjuntos, Diccionarios y Tablas
Programación 2 8 - TADs Colecciones Conjuntos, Diccionarios y Tablas 1 El TAD SET (Conjunto) En el diseño de algoritmos, la noción de conjunto es usada como base para la formulación de tipos de datos abstractos
Estructuras de Datos y Algoritmos Tema 3: Arrays y listas enlazadas
Estructuras de Datos y Algoritmos Tema 3: Arrays y listas enlazadas Departamento de Informática Universidad de Valladolid Curso 2011-12 Grado en Ingeniería Informática Grado en Ingeniería Informática de
Tablas de dispersión
Estructuras de datos Tablas de dispersión Dra. Elisa Schaeffer [email protected] PISIS / FIME / UANL Tablas de dispersión y conjuntos p. 1 Tablas de dispersión dinámicas Una tabla de dispersión
Estructuras Dinámicas de datos.
Estructuras Dinámicas de datos. Las estructuras dinámicas de datos son estructuras que crecen a medida que ejecuta un programa. Una estructura dinámica de datos es una colección de elementos llamadas nodos
Programación en Java. Instructor:
Instructor: Lección 6: Usando Colecciones 1. Collections 2. Iteración 3. La interfaz Collection 4. Set 5. List 6. Maps 7. La clase Collections Collections Muchos programas requieren de mantener un conjunto
DEFINICIONES BÁSICAS DE LAS ESTRUCTURAS DE DATOS
DEFINICIONES BÁSICAS DE LAS ESTRUCTURAS DE DATOS En programación, una estructura de datos es una forma de organizar un conjunto de datos elementales con el objetivo de facilitar su manipulación Un dato
INDICE. Prólogo de la Segunda Edición
INDICE Prólogo de la Segunda Edición XIII Capitulo 1. Algoritmos y Programas 1 1.1. Los sistemas de procesamiento de la información 2 1.2. Concepto de algoritmo 4 1.2.1. Características de los algoritmos
Ingeniera de Sistemas: Luz Esperanza Espitia Tutora de Estructura de datos.
Ingeniera de Sistemas: Luz Esperanza Espitia Tutora de Estructura de datos. Con relación a la Estructura LISTA Indicar objetos reales que se puedan modelar con dicha estructura. Listas de Ordenes de visitas
Sólo una opción es correcta en cada pregunta. Cada respuesta correcta suma 1 4. puntos. Cada respuesta incorrecta resta 1 12
Programación de Sistemas Grados en Ingeniería de Sistemas Audiovisuales, Ingeniería de Sistemas de Comunicaciones, Ingeniería en Sistemas de Telecomunicación e Ingeniería Telemática Leganés, de julio de
INSTITUTO POLITÉCNICO NACIONAL SECRETARÍA ACADÉMICA DIRECCIÓN DE ESTUDIOS PROFESIONALES EN INGENIERÍA Y CIENCIAS FÍSICO MATEMÁTICAS PROGRAMA SINTÉTICO
CARRERA: Ingeniería en Computación INSTITUTO POLITÉCNICO NACIONAL PROGRAMA SINTÉTICO ASIGNATURA: Estructura de Datos. SEMESTRE: Tercero OBJETIVO GENERAL: El alumno diseñará programas relacionando problemas
ALGORITMOS DE BÚSQUEDA. Ing. Ronald A. Rentería Ayquipa
ALGORITMOS DE BÚSQUEDA Algoritmos de Búsqueda Tipos Tipos de algoritmos de búsqueda ALGORITMOS DE BÚSQUEDA NO INFORMADA ALGORITMOS DE BÚSQUEDA HEURÍSTICA Búsqueda no informada Introducción Búsqueda no
UNIDAD 1. 1 de 45. Tercer semestre
UNIDAD 1 1 de 45 DIRECTOR DE LA FCA Mtro. Tomás Humberto Rubio Pérez SECRETARIO GENERAL Dr. Armando Tomé González COORDINACIÓN GENERAL Mtra. Gabriela Montero Montiel Jefe del Centro de Educación a Distancia
Tema 10: Árbol binario de búsqueda
Tema 10: Árbol binario de búsqueda M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido Árbol binario de
Estructuras de Datos II
Estructuras de Datos II Segundo Parcial Los árboles B+ son estructuras de datos jerárquicas que se utilizan para almacenar y manipular datos ordenados de forma muy eficiente, ya que por su estructura y
EL PAQUETE JAVA.UTIL DEL API JAVA. PRINCIPALES INTERFACES Y CLASES: STRINGTOKENIZER, DATE, CALENDAR, HASHSET, TREEMAP, TREESET...
APRENDERAPROGRAMAR.COM EL PAQUETE JAVA.UTIL DEL API JAVA. PRINCIPALES INTERFACES Y CLASES: STRINGTOKENIZER, DATE, CALENDAR, HASHSET, TREEMAP, TREESET... (CU00916C) Sección: Cursos Categoría: Lenguaje de
Búsqueda en espacio de estados
Búsqueda en espacio de estados Departamento de Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Inteligencia Artificial CCIA, US Búsqueda en espacio de estados IA 1 / 35 Metodología
Estructura de Datos. Temario Unidad VI. Árboles Árboles Binarios
Estructura de Datos Árboles Árboles Binarios Temario Unidad VI 6.1 Definición y operaciones 6.2 Implementación 6.3 Recorrido en Árboles Binarios 6.4 Árboles AVL y su implementación 6.5 Árboles n-arios
Esquema de Dividir y Vencer
Esquema de Dividir y Vencer Amalia Duch Barcelona, marzo de 2006 Índice 1. Esquema general 1 2. Búsqueda binaria (binary search) 2 3. Ordenación por fusión (merge sort) 2 4. Ordenación rápida (quick sort)
En las preguntas 1-30 indique la respuesta correcta. e= ninguna de las anteriores
Estructuras de Información... 1 En las preguntas 1-30 indique la respuesta correcta. e= ninguna de las anteriores 1. Cuál de las siguientes afirmaciones es falsa: a. Un nodo es un objeto, un link es un
ANÁLISIS Y DISEÑO DE ALGORITMOS
ANÁLISIS Y DISEÑO DE ALGORITMOS CURSO 2005/2006 BOLETÍN DE PROBLEMAS: DIVIDE Y VENCERÁS Ejercicio 1 Dado un vector ordenado y rotado k veces: diseñar un algoritmo O(log n) que encuentre el elemento mayor
Semana 4: Métodos de Búsqueda No informados. Prof. Oscar Benito Pacheco.
Semana 4: Métodos de Búsqueda No informados Prof. Oscar Benito Pacheco. Estrategias de Búsqueda Búsqueda No Informada Búsqueda Informada (Ciega) (Heurística) 1. Búsqueda preferente por amplitud 2. Búsqueda
Estructuras de Datos y Algoritmos. Programa de la asignatura
Estructuras de Datos y Algoritmos Programa de la asignatura Página Web: http://www.ctr.unican.es/asignaturas/eda Curso 2009-20010 DEPARTAMENTO DE MATEMÁTICAS, Michael González Harbour 1 4 Profesores Michael
1 Introducción a los algoritmos y a la programación de computadoras... 1
Contenido - IX Contenido 1 Introducción a los algoritmos y a la programación de computadoras... 1 1.1 Introducción... 2 1.2 Concepto de algoritmo... 2 1.2.1 Definición de algoritmo y problema... 2 1.2.2
