Tema 6. Estructuras de Datos Estáticas
|
|
- Miguel Peña Roldán
- hace 6 años
- Vistas:
Transcripción
1 Tema 6. Estructuras de Datos Estáticas Contenido del tema: Anidamiento de estructuras Búsqueda y ordenación Francisco Rus Mansilla Dpto. Lenguajes y Ciencias de la Computación 1 Registros con campos estructurados Los campos de un registro pueden ser de cualquier tipo, simple o estructurado: TIPOS ENUM {oros, copas, espadas, bastos} TPalo ENUM {as, dos, tres, cuatro, cinco, seis, siete, sota, caballo,rey} TValor ENUM {Enero, Febrero, Marzo, Abril, Mayo, Junio, Julio,Agosto,Septiembre, Octubre, Noviembre, Diciembre} TMes REGISTRO TCarta TPalo p TValor v FINREGISTRO REGISTRO TFecha N d TMes m N a FINREGISTRO C TCadena [1..20] REGISTRO TPersona TCadena nombre TFecha nacimiento FINREGISTRO 2
2 Registros con campos estructurados El tipo Registro puede ser el tipo componente de otros tipos estructurados. TIPOS TPersona Grupo [1..80] TCarta TMontón [1..40] Tratamiento de estas estructuras a distintos niveles. Si tenemos TPersona p p p.nombre p.nombre[i] p.nacim p.nacim.d variable de tipo TPersona array de 20 caracteres carácter i-ésimo de p.nombre registro de tipo TFecha elemento de tipo TDía 3 Registros con campos estructurados TIPOS C TpCadena[1..256] REGISTRO TFecha N dia, mes, año FINREGISTRO REGISTRO TpPersona TpCadena nombre, direccion // Arrays N dni, telefono // Campos con tipos simples TFecha nacimiento // Registros FINREGISTRO TpPersona TpAgenda[1..500] TpAgenda miagenda TpPersona ego = { yo, aquí, 55, 66, 12, 12, 1983} miagenda[1].nombre = Julián ; ego.nacimiento.dia = 1 4
3 Ejercicio propuesto: agenda Hacer un programa completo con dos estructuras de datos diferentes (véase a continuación). Algoritmos necesarios: Insertar una nueva persona Borrar una persona Listado de todas las personas en la agenda Buscar una persona Estudiar y comparar los algoritmos diseñados, indicando las operaciones más eficientes e ineficientes para cada uno de los dos casos... 5 Mediante un registro con un array... CONST N MAX_CAD = 20 N MAX_PER = 50 Un contador de personas insertadas. Inserciones de registros al final del array. Extraer una persona implica desplazamientos en el array. TIPOS C TCadena [1..MAX_CAD] REGISTRO TInfoPersona TCadena nombre, apellido1, apellido2 N tfno FINREGISTRO TInfoPersona TListaPersonas [1..MAX_PER] REGISTRO Tagenda N numpersonas TListaPersonas lista FINREGISTRO Es fácil saber si el array está lleno o vacío. 6
4 Mediante un array de registros... CONST N MAX_CAD = 20 N MAX_PER = 50 TIPOS C TCadena [1..MAX_CAD] REGISTRO TInfoPersona TCadena nombre, ap1, ap2 N tfno B vacio FINREGISTRO TInfoPersona TAgenda [1..MAX_PER] Un campo booleano indica si la posición del array está ocupada. Inserciones de registros en la primera posición libre. Extraer una persona no implica desplazamientos en el array. Para saber si el array está lleno o vacío hay que recorrerlo buscando huecos. 7 Ejemplo: cadenas de caracteres CONST TIPOS Otra implementación N MAX = 80 // Máximo núm. de caracteres /* Mediante esta implementación no necesitaremos el delimitador de fin de cadena */ REGISTRO TCadena C ch [1..MAX] // Array de caracteres N long // Longitud de la cadena FINREGISTRO 8
5 Longitud de la cadena de caracteres ALGORITMO N CalcularLongitud (E TCadena cad) DEVOLVER cad.long FIN CalcularLongitud Otra implementación 9 Concatenar cadenas de caracteres ALGORITMO TCadena Concatenar(E TCadena c1,c2) N long1, long3, i TCadena c3 // Cadena resultante long1 = CalcularLongitud(c1) long3 = long1 + CacularLongitud(c2) SI (long3 > MAX) ENTONCES long3 = MAX c3.ch = c1.ch PARA i = long1 + 1 HASTA long3 HACER c3.ch[i] = c2.ch[i-long1] FINPARA c3.long = long3 DEVOLVER c3 FIN Concatenar Otra implementación 10
6 Encontrar un patrón en una cadena ALGORITMO N EncontrarPatrón (E TCadena c1,c2) N i,j,long1,long2, posicion B encontrada long1 = CalcularLongitud(c1) long2 = CalcularLongitud(c2) i = 0 encontrada = FALSO MIENTRAS i+long2 <= long1 Y NO encontrada HACER j = 1 MIENTRAS j<=long2 Y c1.ch[i+j]==c2.ch[j] HACER j = j + 1 FINMIENTRAS SI j > long2 ENTONCES encontrada = VERDADERO j SINO i i = i + 1 c2 FINMIENTRAS SI encontrada ENTONCES posicion = i+1 c1 SINO posicion = 0 // Si no encontramos el patrón, devolvemos 0 DEVOLVER posicion FIN EncontrarPatrón Otra implementación 11 Búsqueda y ordenación Sobre estructuras de datos: Se busca un elemento Se ordenan sus elementos (si éstos son ordinales) El algoritmo empleado depende de la estructura de datos utilizada. Tipos de algoritmos: Desarrollados por el programador De librerías de programas 12
7 Algoritmos de búsqueda de datos Consiste en buscar (indicar si está o no) un elemento en una estructura de datos. Es una operación muy frecuente en programación, por lo que existen diversidad de algoritmos. Diferencias de eficiencia entre algoritmos La estructura de datos puede considerarse una lista de datos. Cada dato de la lista se denomina componente o elemento (de algún TipoElemento). Una lista puede implementarse mediante un array: TipoElemento TpVector[0..MAX-1] 13 Búsqueda secuencial Aplicabilidad: Desconocimiento acerca de la organización de los datos. Estructura sólo accedida secuencialmente. Idea clave: Visitar todas las posiciones del array, hasta que se encuentre el elemento o se llegue al final del array (el elemento no está). ALGORITMO B BuscarSec(E TpVector v; E TipoElemento x) N ind B encontrado = FALSO ind = 0 MIENTRAS ind<max Y v[ind]!= x HACER ind = ind + 1 FINMIENTRAS SI ind!=max ENTONCES encontrado = VERDADERO DEVOLVER encontrado FIN BuscarSec 14
8 Sobre la búsqueda secuencial... En el bucle: la evaluación en cortocircuito de la condición evita errores de acceso a la estructura de datos. Eficiencia según el número de operaciones de comparación (v[ind]!= x) para un array de tamaño N: Mejor Caso 1 comparación Peor Caso N comparaciones Caso Promedio N/2 comparaciones Condiciones para el fin de la búsqueda: Elemento hallado: v[ind] == x Elemento no hallado: ind == MAX 15 Búsqueda secuencial con centinela Posible optimización (aumento de eficiencia) del algoritmo de búsqueda secuencial: eliminar el chequeo (ind < MAX) Método: asegurarnos que x está en v, añadiendo x al final del array (centinela): v[max] = x Incrementamos en 1 el tamaño del array: TipoElemento TpVector[0..MAX] ALGORITMO B BuscarSecCen(E TpVector v; E TipoElemento x) N ind B encontrado = FALSO ind = 0 MIENTRAS v[ind]!= x HACER ind = ind + 1 FINMIENTRAS SI ind!=max ENTONCES encontrado = VERDADERO DEVOLVER encontrado FIN BuscarSecCen 16
9 Búsqueda binaria Aplicabilidad: Se tiene información adicional: cómo están organizados los datos. Búsqueda más eficiente porque los datos están ordenados: TipoElemento TpVector[0..MAX-1] Orden ascendente: k tal que 1<=k<=MAX-1, se cumple que v[k-1]<=v[k] Orden descendente: k tal que 1<=k<=MAX-1, se cumple que v[k-1]>=v[k] Idea clave: Inspeccionar un elemento de índice m elegido arbitrariamente (siendo x el elemento a buscar): -Si v[m] == x fin de la búsqueda -Si v[m] < x k/ k<=m, v[k] eliminados -Si v[m] > x k/ k>=m, v[k] eliminados 17 Algoritmo de búsqueda binaria ALGORITMO B BuscarBin (E TpVector v; E TipoElemento x) N izq, der, m B encontrado izq = 0 der = MAX - 1 encontrado = FALSO MIENTRAS izq<= der Y NO encontrado HACER m = // cualquier valor entre izq y der SI v[m]==x ENTONCES encontrado= VERDADERO SINO SI v[m] < x ENTONCES izq = m + 1 SINO der = m - 1 FINMIENTRAS DEVOLVER encontrado FIN BuscarBin 18
10 Sobre la búsqueda binaria... Elección de m: No afecta a la corrección del algoritmo. Objetivo: eliminar el mayor número de elementos en cada iteración. Elección óptima: m=(izq+der) DIV 2 Eficiencia (peor caso): Trunc(log 2 N) Algoritmos de ordenación La ordenación de datos es una tarea muy relevante en programación. Es un problema clásico ampliamente estudiado, por lo que existen diversidad de algoritmos. Los algoritmos difieren en su eficiencia: Economía del uso de memoria. Economía del número de operaciones: Algotimo más eficiente: Quicksort (complejidad computacional de N log 2 N), basado en la técnica de la recursividad. Algoritmos menos eficientes: Inserción, Selección e Intercambio (complejidad computacional de N 2 ). 20
11 Ordenación de elementos de un vector Tipo array para la estructura de datos: TipoElemento TpVector[1..MAX] Sobre TipoElemento debe haber definida una relación de orden. El problema de la ordenación (ascendente) de un vector V, de tamaño N, consiste en encontrar una permutación s de los elementos del vector, tal que se cumpla: V[s i ] <= V[s i+1 ], i / 1 i N-1 El orden deseado será: V[s 1 ], V[s 2 ],..., V[s N ]. 21 Ordenación por inserción Idea clave: para cada paso i, los elementos V 1,..., V i-1 están ordenados y se inserta entre ellos V i de forma que, después de la inserción, los elementos V 1,..., V i estén ordenados. Ejemplo: se debe ordenar la siguiente colección de elementos:
12 Secuencia de ordenación por inserción Paso 1: i=2. Suponemos V 1,...,V 1 ordenados, insertamos V 2 =>V 1,...,V 2 ordenados Paso 2: i=3. Suponemos V 1,...,V 2 ordenados, insertamos V 3 => V 1,...,V 3 ordenados Paso 3: i=4. Suponemos V 1,..., V 3 ordenados, insertamos V 4 => V 1,...,V 4 ordenados Paso 4: i=5. Suponemos V 1,..., V 4 ordenados, insertamos V 5 => V 1,...,V 5 ordenados Paso 5: i=6. Suponemos V 1,..., V 5 ordenados, insertamos V 6 => V 1,...,V 6 ordenados Paso 6: i=7. Suponemos V 1,..., V 6 ordenados, insertamos V 7 => V 1,...,V 7 ordenados Paso 7: i=8. Suponemos V 1,..., V 7 ordenados, insertamos V 8 => V 1,...,V 8 ordenados Operación más crítica: la inserción Inserción directa: abrir un hueco en la sucesión V 1,...V i-1 para encajar V i Ejemplo: Paso 4: i=5. Suponemos V 1,..., V 4 ordenados, insertamos V 5 => V 1,..., V 5 ordenados
13 Algoritmo de ordenación por inserción ALGORITMO TpIndice BuscarPosicion (E TipoElemento valor; E TpVector v; E TpIndice fin) TpIndice i i = 1 MIENTRAS i <= fin Y v[i] < valor HACER i = i + 1 FINMIENTRAS DEVOLVER (i) FIN BuscarPosicion Subalgoritmos auxiliares El TpIndice es el tipo por el que está indizado el array (suponemos N para simplificar) ALGORITMO AbrirHueco (ES TpVector v; E TpIndice inicio, fin) TpIndice i PARA i=fin HASTA inicio + 1 (PASO -1) HACER v[i] = v[i-1] FINPARA FIN AbrirHueco 25 Algoritmo principal de ordenación ALGORITMO OrdenarPorInsercion (ES TpVector v) TpIndice i, pos TipoElemento aux PARA i=2 HASTA MAX HACER aux = v[i] pos = BuscarPosicion(aux, v, i-1) AbrirHueco(v, pos, i) V[pos] = aux FINPARA FIN OrdenarPorInsercion 26
14 Búsqueda binaria de la pos. de inserción ALGORITMO TpIndice BuscarPosicion (E TipoElemento valor; E TpVector v; E TpIndice fin) TpIndice izd, der, med izq = 1 der = fin MIENTRAS izd <= der HACER med = (izq + der) DIV 2 Reduce el número de operaciones de comparación respecto a la búsqueda secuencial SI valor < v[med] ENTONCES der= med - 1 SINO izq= med + 1 FINMIENTRAS DEVOLVER (izq) FIN BuscarPosicion 27 Ordenación por selección Idea Clave: 1. Determinar la posición del menor elemento del array 2. Intercambiar dicho elemento por el elemento que hay en la primera posición V 1 3. Repetir esta operación con los N-1 elementos restantes V 2,..., V MAX 28
15 Ordenación por selección Ejemplo Paso1: Paso2: Paso3: Paso5: Paso6: Paso7: Resultado Paso4: N elementos Posición iésima N-1 Intercambios Menor elemento a partir de la iésima posición 29 Ordenación por selección ALGORITMO TpIndice OrdenarPorSelección(ES TpVector v) TpIndice i, pos TipoElemento menor PARA i = 1 HASTA Max-1 HACER pos = i menor = v[i] PARA j = i+1 HASTA Max HACER SI v[j] < menor ENTONCES pos = j menor = v[j] FINPARA v[pos] = v[i] v[i] = menor FINPARA FIN OrdenarPorSelección 30
16 Ordenación por intercambio Idea Clave: Comparar pares de elementos adyacentes e intercambiarlos entre sí 1. Comparar V N y V N-1, si no están ordenados, intercambiarlos 2. Comparar V N-1 y V N-2, repitiendo el proceso 3. El proceso continúa hasta que cada elemento del array haya sido comparado con sus elementos adyacentes 31 Ordenación por intercambio En el primer recorrido el elemento más pequeño del array sube posición a posición hasta ocupar la primera posición del array Método de la Burbuja En el segundo recorrido el segundo elemento mayor llegará a la segunda posición y así sucesivamente 32
17 Ordenación por intercambio Ejemplo Paso1: Ordenación por intercambio Paso2: Paso3,..., Paso9:
18 Ordenación por intercambio ALGORITMO TpIndice OrdenarPorIntercambio(ES TpVector v) TpIndice i, j TipoElemento temp PARA i = 2 HASTA Max HACER PARA j = Max HASTA i (PASO 1) HACER SI v[j-1] > v[j] ENTONCES temp = v[j-1] v[j-1] = v[j] Intercambio v[j] = temp FINPARA FINPARA FIN OrdenarPorIntercambio 35 Bibliografía Programación en C++. Algoritmos, estructuras de datos y objetos. L. Joyanes. McGraw-Hill, Cómo programar en C/C++. H.M. Deitel, P.J. Deitel. Prentice Hall, Pascal. Dale/Orshalick. Ed. McGraw Hill 1986 Programación I. José A. Cerrada y Manuel Collado. U.N.E.D Fundamentos de Programación. Joyanes Aguilar. McGraw Hill. 2ª Edición, Introduction to programming with Modula-2. Saim Ural/Suzan Ural. Wiley
Búsqueda y Ordenación Contenido del Tema
Búsqueda y Ordenación Contenido del Tema T E M A 1 1.1. Introducción 1.2. Búsqueda 1.2.1. Búsqueda Secuencial 1.2.2. Búsqueda Binaria 1.2.3. Búsqueda en Cadenas 1.3. Ordenación 1.3.1. Ordenación por Inserción
Más detallesTipos de Datos Compuestos Contenido del Tema T E M A Arrays Cadenas de caracteres Registros
Tipos de Datos Compuestos Contenido del Tema T E M A 6.1. Arrays 6.2. Cadenas de caracteres 6.3. Registros 6 Necesidad de los Arrays Con los tipos de datos estudiados hasta ahora. Como representamos colecciones
Más detallesMétodos de ordenamiento y búsqueda en vectores
Métodos de ordenamiento y búsqueda en vectores Ordenación (clasificación) Es la operación de organizar un conjunto de datos en algún orden o secuencia específica, tal como creciente o decreciente para
Más detallesTEMA 1. Recursividad. Recursividad CONTENIDO DEL TEMA
TEMA 1 Recursividad Recursividad T E M A 1 CONTENIDO DEL TEMA 1.- Introducción. 2.- Verificación de funciones y procedimientos recursivos 3.- Escritura de programas recursivos 4.- Ejemplos. 5.- Recursión
Más detallesTema 9. Algoritmos sobre listas. Programación Programación - Tema 9: Algoritmos sobre listas
Tema 9 Algoritmos sobre listas Programación 2015-2016 Programación - Tema 9: Algoritmos sobre listas 1 Tema 9. Algoritmos sobre listas Algoritmos sobre Arrays. Búsqueda. Inserción. Ordenación. Programación
Más detallesTema 1. ORDENACIÓN, BÚSQUEDA E INTERCALACIÓN INTERNA (Algoritmos)
Tema 1. ORDENACIÓN, BÚSQUEDA E INTERCALACIÓN INTERNA (Algoritmos) 1. Declaraciones previas Para los algoritmos que aparecen a continuación se supone que se han realizado las siguientes declaraciones globales:
Más detallesAlgoritmos sobre Listas
TEMA 6 Algoritmos sobre Listas V1.1 Manuel Pereira González Agenda Introducción Algoritmos de Búsqueda Búsqueda Secuencial Búsqueda Binaria Análisis de Eficiencia Algoritmos de Inserción Algoritmos de
Más detallesMé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
Más detallesEste 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 detallesOrdenamiento y Búsqueda
Ordenamiento y Búsqueda Facultad de Ciencias de la Computación Juan Carlos Conde R. Object-Oriented Programming I Contenido 1 Introducción 2 Intercambio directo 3 Inserción directa 4 Selección directa
Más detallesFrancisco J. Hernández López
Francisco J. Hernández López fcoj23@cimat.mx Acomodar algo en alguna secuencia especifica Objetos ordenados: Directorio telefónicos Registro de pacientes Libros en una biblioteca Cosas del hogar Se puede
Más detallesMé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
Más detallesTema 6. Ordenación, búsqueda e intercalación interna
Fundamentos de Programación I Tema 6. Ordenación, búsqueda e intercalación interna Luís Rodríguez Baena (luis.rodriguez@upsam.net) Universidad Pontificia de Salamanca (campus Madrid) Escuela Superior de
Más detallesUnidad 4. Arreglos y Cadenas
Unidad 4. Arreglos y Cadenas Definición de Arreglo: Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La propiedad indexado significa
Más detallesListas Posicionales. Listas posicionales
Listas Posicionales Definición: Una lista posicional es una colección de elementos homogéneos, con una relación lineal entre ellos, en la que se puede acceder a los elementos mediante su posición. Se puede
Más detalles7.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 detallesMé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
Más detallesPROGRAMACIÓN ESTRUCTURADA
Universidad Nacional de Jujuy PROGRAMACIÓN ESTRUCTURADA Trabajo Práctico Nº 11 Tema: Operaciones sobre Arreglos. Ordenación. Apellido y Nombre: Fecha: / / Conceptos Teóricos ORDENACIÓN DE ARREGLOS Los
Más detallesUniversidad 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 detallesTema 4. Estructuras de control
Tema 4. Estructuras de control Contenido del tema: Expresiones booleanas. Sentencias de selección. Sentencias de iteración. Aplicaciones Estructuras de control en C++ Francisco J. Veredas Dpto. Lenguajes
Más detallesAlgoritmos 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 detallesTema 1. Ordenación, búsqueda e intercalación interna
Fundamentos de Programación II Tema 1. Ordenación, búsqueda e intercalación interna Luis Rodríguez Baena (luis.rodriguez@upsam.es) Universidad Pontificia de Salamanca Escuela Superior de Ingeniería y Arquitectura
Más detallesCAPÍTULO 3 ESTRUCTURAS DE DATOS ESTÁTICAS
CAPÍTULO 3 ESTRUCTURAS DE DATOS ESTÁTICAS Capítulo 3 Estructuras de datos estáticas 1/37 1. INTRODUCCIÓN Las estructuras de datos se utilizan, generalmente, para procesar una colección de valores que están
Más detallesTema 2.- Ordenación (Parte I)
En la elaboración de estos apuntes han participado los siguientes alumnos: Helena Hernández Obregón (Curso 200/2002), Eduardo Quevedo, Raquel González y Aarón Asencio (Curso 2003/200). Actualizado por
Más detalles1. Introducción: Recordatorio Conjunto de elementos del mismo tipo conceptualmente t relacionados. Los elementos están indexados: Se accede a ellos at
4. Operaciones sobre vectores 1. Introducción 2. Búsqueda 3. Actualización de vectores ordenados y no ordenados 1. Inserción 2. Modificación 3. Borrado 4. Métodos de Ordenación 1. Cuadráticos 2. Logarítmicos
Más detallesESTRUCTURA 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 dtorres@mixteco.utm.mx Contenido 1. Ordenamiento
Más detallesTema 2. Tipos y Estructuras Básicas
Tema 2. Tipos y Estructuras Básicas 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
Más detallesObjetivos. Conocer y saber utilizar diferentes tipos de datos. estructurados: cómo se definen. cómo están organizadas sus componentes
Objetivos Conocer y saber utilizar diferentes tipos de datos estructurados: cómo se definen cómo están organizadas sus componentes cómo se accede a ellas y sus operaciones y algoritmos básicos Tema: Estructuras
Más detallesUnidad 5. Arreglos: Vectores y Matrices. Prof. Eliana Guzmán U.
Unidad 5. Arreglos: Vectores y Matrices Prof. Eliana Guzmán U. Semestre A-2012 Estructuras de datos Los arreglos son un tipo de estructura de datos. Una estructura de datos es una colección de datos que
Más detallesINDICE. 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
Más detallesUnidad 5: Estructuras Estáticas I: Tablas 1 Unidad 5 ESTRUCTURAS ESTÁTICAS I: Tablas Desarrollo de la unidad : 36 h
Unidad 5: Estructuras Estáticas I: Tablas 1 Unidad 5 ESTRUCTURAS ESTÁTICAS I: Tablas Desarrollo de la unidad : 36 h Prácticas: Ejercicios: Conceptos: Tablas unidimensionales, vectores, cadenas, modificación,
Más detalles23. Ordenación de vectores (tablas) Diego Gutiérrez
23. Ordenación de vectores (tablas) 1 O cómo evitar tener que buscar una aguja en un pajar Ordenación 3 Ordenación O cómo evitar tener que buscar una aguja en un pajar Cómo buscamos una palabra en un diccionario?
Más detallesEstructuras 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
Más detallesTema 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
Más detalles1. Introducción al análisis de algoritmos
1. Introducción al análisis de algoritmos 1. Introducción al concepto de algoritmia 2. Eficiencia de un algoritmo 3. Notación asintótica 4. Reglas generales Bibliografía Brassard y Bratley, 97; capítulos
Más detallesEstructuras de Datos y Algoritmos
Estructuras de Datos y Algoritmos Prof. Dr. P. Javier Herrera Contenido 1 Conceptos básicos de grafos y su especificación algebraica 2 Algoritmos de ordenación 3 Algoritmos de búsqueda 2 1. Grafos Estructuras
Más detallesIndexación con lista enlazada
Indexación con lista enlazada Estructura de datos Roberto Maestre Martínez Diseño y arquitectura del sistema La nomenclatura utilizada es la siguiente. cvar Indica nombre de clase Var ovar Indica un objeto
Más detallesProgramación I (Plan 1999) Algoritmos y Estructuras de Datos II (Plan 2009) Mgter. Oscar Adolfo Vallejos FaCENA - UNNE
Unidad 3: Eficiencia de Algoritmos Tema V: Búsqueda. Búsqueda. Búsqueda Lineal. Búsqueda binaria. Búsqueda Máximos y Mínimos. Análisis de los algoritmos de búsqueda. Programación I (Plan 1999) Algoritmos
Más detallesArreglos Estructura (struct)
Universidad Rafael Urdaneta Escuela de Ingeniería de Computación Arreglos Estructura (struct) MSc Jaime Soto Una estructura de datos es una colección de datos que pueden ser caracterizados por su organización
Más detallesSoluciones propuestas
Cuadernillo de examen ASIGNATURA: Fundamentos de Programación I CÓDIGO: 106 CONVOCATORIA: Febrero 2009 PLAN DE ESTUDIOS: 2000/2002 CURSO: 1º CURSO ACADÉMICO: 2008/2009 TURNO: Mañana TITULACIÓN: Ingeniería
Más detallesEstructura de datos y de la información Boletín de problemas - Tema 10
Estructura de datos y de la información Boletín de problemas - Tema 10 1. En el caso de que sea posible, dar un ejemplo de los siguientes puntos. Si no, explicar por qué no lo es. Considerar un valor genérico
Más detallesBloque 1. Conceptos y técnicas básicas en programación
Bloque 1. Conceptos y técnicas básicas en programación 1. Introducción 2. Datos y expresiones. Especificación de algoritmos 3. Estructuras algorítmicas básicas 4. Iteración y recursión 5. Iteración y recursión
Más detallesSEGUNDA PARTE: TIPOS COMPLEJOS
SEGUNDA PARTE: TIPOS COMPLEJOS Introducción En la primera parte del tema se vieron los tipos simples de datos que es capaz de almacenar el ordenador: booleanos, caracteres, enteros y reales. Sin embargo,
Más detallesASIGNATURA: (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
Más detallesALGORITMOS Y PROGRAMACIÓN I Unidad 3
ALGORITMOS Y PROGRAMACIÓN I Unidad 3 Tipos de Datos Estructurados Prof. Jaime Soto Sección (007) Material original de Prof. AURELY LEAL Introducción a las Estructuras de Datos Una estructura de datos es
Más detallesCurso 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 detallesEstructura de Datos Árboles Árboles 2-3
Estructura de Datos Árboles 1-2-3 Árboles 2-3 Prof.: Mauricio Solar Prof.: Lorna Figueroa Primer Semestre, 2010 1 Arboles 1-2-3 Árbol n-ario ordenado de orden 3 Cada nodo tiene 1 ó 2 elementos 75 Nodo
Más detallesGUIA DOCENTE INFORMÁTICA. Facultat de Matemàtiques. Curso Departament d Informàtica (ETSE)
GUIA DOCENTE de INFORMÁTICA Curso 2009-10 Departament d Informàtica (ETSE) Facultat de Matemàtiques 1 GUÍA DOCENTE DE ASIGNATURA INTRODUCCIÓN Informática es la única asignatura relativa a la materia del
Más detallesMétodos de ordenamiento y búsqueda para datos en memoria principal
Métodos de ordenamiento y búsqueda para datos en memoria principal Franco Guidi Polanco Escuela de Ingeniería Industrial Pontificia Universidad Católica de Valparaíso, Chile fguidi@ucv.cl Ordenamiento
Más detallesLenguaje de Diseño: Estructuración de Datos
Teoría Nº 6 Lenguaje de Diseño: Estructuración de Datos Primer Cuatrimestre Un palíndromo es una palabra, o frase que se lee igual hacia adelante que hacia atrás. Si se trata de un número, se llama capicúa.
Más detalles3.2. Matrices Introducción Qué ocurre cuando el tipo base de un array es otro array? Mat =vector[ vector[1....4] de (vector[1..5] de enteros);
Bloque 3. Tema 3. Operaciones avanzadas con Vectores 1. Búsqueda en vectores ordenados: búsqueda binaria 2. Matrices 1. Introducción 2. Sintaxis 3. Ejemplos 3. Operaciones con matrices 1. Recorrido de
Más detallesMétodos de ordenamiento y búsqueda para datos en memoria principal
Ordenamiento Métodos de ordenamiento y búsqueda para datos en memoria principal Dada una colección que contiene un número elementos, el ordenamiento es el proceso de reacomodar un conjunto de elementos
Más detallesEstructura de Datos. Árboles Binarios de Búsqueda ABB. Primer Semestre, 2010
Estructura de Datos Árboles Binarios de Búsqueda ABB Prof.: Mauricio Solar Prof.: Lorna Figueroa Primer Semestre, 20 1 Arboles de Búsqueda Binaria El árbol binario de búsqueda (ABB) toma su nombre del
Más detallesLenguaje de Diseño: Estructuración de Datos
Teoría Nº 6 Lenguaje de Diseño: Estructuración de Datos Segundo Cuatrimestre Un palíndromo es una palabra, o frase que se lee igual hacia adelante que hacia atrás. Si se trata de un número, se llama capicúa.
Más detallesLenguaje de Diseño: Estructuración de Datos
Teoría Nº 8 Lenguaje de Diseño: Estructuración de Datos Resolución de Problemas y Algoritmos Primer Cuatrimestre ENUNCIADO: DADO UN NÚMERO ENTERO POSITIVO, ENCONTRAR EL ALGORITMO QUE DETERMINE EL FACTORIAL
Más detallesSoluciones a los ejercicios planteados en el curso
Soluciones a los ejercicios planteados en el curso Unidad 3 - Algoritmos recursivos Lección 2 Mecanismo de recursividad Escribe un algoritmo recursivo que calcule el elemento de cardinal más elevado de
Más detallesPorque usar Arreglos?
Arreglos Porque usar Arreglos? Se tienen las calificaciones de 100 alumnos, como sacar cuantos alumnos tienen una calificación superior al promedio? Doble lectura: Un ciclo para leer y acumular las calificaciones,
Más detallesHashing (Funciones de Dispersión)
Hashing características Hashing (Funciones de Dispersión) Mauricio Solar Lorna Figueroa No necesita almacenamiento adicional (índice). Facilita la inserción y eliminación rápida de registros. Encuentra
Más detallesAnálisis de algoritmos
(Algoritmos de Ordenamiento) M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Contenido Definición del problema Actividades Observaciones
Más detallesAlgorí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
Más detalles1. 1. Introducción al concepto de algoritmia
1. Introducción al análisis de algoritmos 1. Introducción al concepto de algoritmia 2. Eficiencia de un algoritmo 3. Notación asintótica 4. Reglas generales Bibliografía Básica: Aho, Hopcroft y Ullman,
Más detallesTEMA 7. ALGORITMOS DE BÚSQUEDA, ORDENACIÓN
M.P. Sesmero, P. de Toledo, F.J. Ordoñez, J. Gómez-Romero, J.A. Iglesias, J.L. Mira Programación TEMA 7. ALGORITMOS DE BÚSQUEDA, ORDENACIÓN Y MEZCLA Grado en Ingeniería en Tecnologías Industriales Programación
Más detallesTema 5. Tipos de datos definidos por el usuario
Tema 5. Tipos de datos definidos por el usuario Contenido del tema: Enumerados Arrays Cadenas de caracteres Registros Arrays, cadenas de caracteres y registros en C++ Francisco Rus Mansilla Dpto. Lenguajes
Más detallesAlgoritmos y Estructuras de Datos Curso 04/05. Ejercicios
35. Sean A= {1, 2, 3, 7, 8} y B= {3, 4, 5, 7, 9}, mostrar la ejecución y los resultados de las siguientes operaciones, suponiendo una representación con arrays de booleanos y con listas de elementos (ordenadas
Más detallesFundamentos de programación JAVA
Pág. N. 1 Fundamentos de programación JAVA Familia: Editorial: Autor: Computación e informática Macro Ricardo Walter Marcelo Villalobos ISBN: 978-612-304-238-7 N. de páginas: 296 Edición: 2. a 2014 Medida:
Más detallesNecesidad de las memorias secundarias.
Contenido del Tema 4.1. Introducción. 4.2. Conceptos básicos. 4.3. Operaciones sobre ficheros. 4.4. Tipos de ficheros. 4.5. Organización de ficheros. 4.6. Primitivas de acceso. 4.7. Ordenación externa.
Más detallesSolución propuesta. Cuadernillo de examen. Preguntas teóricas
Cuadernillo de examen Asignatura: Fundamentos de Programación I Código: 106 Titulación: Ingeniería Informática / Ingeniería Técnica en Informática Plan de estudios: 2000/2002 Curso: 1º Carácter: Obligatoria
Más detallesEstructuras de Control Contenido del Tema
Estructuras de Control Contenido del Tema T E M A 4 4.1. Introducción. 4.2. Expresiones lógicas. 4.3. Estructuras selectivas. 4.3.1. Sentencia de selección simple. 4.3.2. Sentencia de selección binaria.
Más detallesFundamentos de Programación Visual Basic
Pág. N. 1 Fundamentos de Programación Visual Basic Familia: Editorial: Tecnología de información y computación Macro Autor: Ricardo Walter Marcelo Villalobos ISBN: 978-612-304-236-3 N. de páginas: 280
Más detallesEI MT1008 Programación II
GRADO EN INGENIERÍA INFORMÁTICA GRADO EN MATEMÁTICA COMPUTACIONAL EI1008 - MT1008 Programación II Curso 2010-2011 Departamento de Lenguajes y Sistemas Informáticos 1. Datos de la asignatura Carácter: Formación
Más detallesAlgoritmos de ordenación básicos
Algoritmos de ordenación básicos por Iván Cruz Cuando tratamos de resolver algunos problemas haciendo uso de la programación estructurada, en ocasiones es necesario poder ordenar un conjunto de datos.
Más detallesUniversidad 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 detallesParte de Algoritmos de la asignatura de Programación Master de Bioinformática. Avance rápido
Parte de Algoritmos de la asignatura de Programación Master de Bioinformática Avance rápido Web asignatura: http://dis.um.es/~domingo/algbio.html E-mail profesor: domingo@um.es Transparencias preparadas
Más detallesAlgoritmos 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
Más detalles3.Conocimientos previos requeridos 7.Estimación de la dedicación del alumno. 4.Contenidos mínimos. 1.Introducción. 2.Objetivos generales
Proyecto Docente Curso 05/06 1 de 9 1.Introducción. 2.Objetivos generales 5.Competencias. 6.Calendario de actividades. 9. Evaluación 10. Bibliografía del aprendizaje. 3.Conocimientos previos requeridos
Más detallesUniversidad Autónoma del Estado de México Licenciatura en Informática Administrativa Programa de Estudios: Estructura de Datos
Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa 2003 Programa de Estudios: Estructura de Datos I. Datos de identificación Licenciatura Informática Administrativa 2003
Más detallesFundamentos de programación C++
Pág. N. 1 Fundamentos de programación C++ Familia: Editorial: Autor: Computación e informática Macro Ricardo Walter Marcelo Villalobos ISBN: 978-612-304-235-6 N. de páginas: 280 Edición: 2. a 2014 Medida:
Más detallesAlgoritmos y Estructuras de Datos Ingeniería en Informática
2.1.Sean A= {1, 2, 3, 7, 8} y B= {3, 4, 5, 7, 9}, mostrar la ejecución y los resultados de las siguientes operaciones, suponiendo una representación con arrays de booleanos y con listas de elementos (ordenadas
Más detallesAlgorítmica y Lenguajes de Programación. Búsqueda
Algorítmica y Lenguajes de Programación Búsqueda Búsqueda. Introducción Hace dos lecciones se dijo que había tres tratamientos básicos sobre vectores: Recorrido. Ordenación. Búsqueda. Durante las últimas
Más detallesExperiencia en gestión de proyectos, bases de datos, licenciatura en informática o afines
1. DATOS GENERALES DEL CURSO Nombre del curso Estructuración de Datos Programa al que pertenece Créditos Horas teoría 35 Horas práctica 70 Eje de formación Perfil deseable del profesor LICENCIATURA EN
Más detallesEstructuras 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ás detallesEn 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
Más detallesEstructuras de Datos Dinámicas Contenido del Tema
T E M A 2 Estructuras de Datos Dinámicas Contenido del Tema 2.1. Introducción a las estructuras de datos dinámicas. 2.2. Tipo Puntero 2.3. Aplicación: Listas enlazadas. Introducción a las Estructuras de
Más detallesPrefacio 25 Organización de la Unidad Didáctica Cómo utilizar el libro Objetivos docentes... 27
ÍNDICE Prefacio 25 Organización de la Unidad Didáctica.................... 25 Cómo utilizar el libro............................. 26 Objetivos docentes.............................. 27 1 Fundamentos de
Más detallesTema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN
Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN - Introducción - Sintaxis - Semántica básica - Tipos de datos - Expresiones y enunciados - Procedimientos y ambientes - Tipos abstractos de datos y módulos
Más detallesUNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS (Universidad del Perú, DECANA DE AMÉRICA)
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS (Universidad del Perú, DECANA DE AMÉRICA) FACULTAD DE INGENIERIA DE SISTEMAS E INFORMATICA ESCUELA PROFESIONAL DE INGENIERÍA DE SOFTWARE 1. INFORMACIÓN GENERAL
Más detallesCAPITULO 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 detallesUNIVERSIDAD DEL VALLE DE MÉXICO PROGRAMA DE ESTUDIO DE LICENCIATURA PRAXIS MES XXI
UNIVERSIDAD DEL VALLE DE MÉXICO PROGRAMA DE ESTUDIO DE LICENCIATURA PRAXIS MES XXI NOMBRE DE LA ASIGNATURA: DISEÑO DE ALGORITMOS FECHA DE ELABORACIÓN: ENERO 2005 ÁREA DEL PLAN DE ESTUDIOS: AS ( ) AC (
Más detallesTema 9. Recursividad
Tema 9. Recursividad 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 Universitat
Más detallesGloria Guadalupe González Flores, José Hernández Torruco Fecha de elaboración: 28 de Mayo de 2010 Fecha de última actualización:
PROGRAMA DE ESTUDIO Estructuras de datos y organización de archivos Programa Educativo: Licenciatura en Sistemas Computacionales Área de Formación : Sustantiva profesional Horas teóricas: 2 Horas prácticas:
Más detallesTema: Métodos de Ordenamiento. Parte 1.
Programación IV. Guía No. 3 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 detallesUniversidad Tecnológica Nacional Facultad Regional San Francisco. Tecnicatura Superior en Programación PROGRAMACIÓN II
Universidad Tecnológica Nacional Facultad Regional San Francisco Tecnicatura Superior en Programación PLANIFICACIÓN CICLO LECTIVO 2014 ÍNDICE ÍNDICE... 2 PROFESIONAL DOCENTE A CARGO... 3 UBICACIÓN... 4
Más detallesSoluciones propuestas
Cuadernillo de examen ASIGNATURA Fundamentos de Programación II CÓDIGO 113 CONVOCATORIA Ordinario de Junio 2003 PLAN DE ESTUDIOS 2000/2002 ESPECIALIDAD Común CURSO 1º TURNO Mañana CURSO ACADÉMICO 2002-2003
Más detallesIntroducción a los computadores 1º. Ingeniería Técnica de Telecomunicación Convocatoria ordinaria (1ª. parte) 16 FEBRERO 2004
Universidad de Málaga Introducción a los computadores 1º. Ingeniería Técnica de Telecomunicación Convocatoria ordinaria (1ª. parte) 16 FEBRERO 2004 Nombre: Especialidad (SE/SI/ST): Pregunta 1. Grupo (A/B
Más detallesINDICE Parte I Algoritmos y herramientas de programación Capitulo 1. Computadoras y lenguajes de programación Actividades de Programación Resueltas
INDICE Prologo a la tercera edición xiii Prologo a la segunda edición xxvii Parte I Algoritmos y herramientas de programación Capitulo 1. Computadoras y lenguajes de programación 3 1.1. Organización de
Más detalles6. El TDA Lista Implementación con listas enlazadas. es de tipo genérico T. Pueden existir elementos repetidos (a diferencia de los conjuntos).
6. El TDA Lista 6.1. Definición 6.2. Operaciones del TDA 6.3. Implementación con vectores 6.4. Implementación con listas enlazadas 6.5. Comparativa Bibliografía: -Weiss - Aho, Hopcroft y Ullman 6.1. Definición
Más detalles