Algorítmica y Complejidad. Tema 3 Ordenación.
|
|
- Diego del Río Flores
- hace 7 años
- Vistas:
Transcripción
1 Algorítmica y Complejidad Tema
2 . Introducción.. Algoritmo de inserción.. Algoritmo de selección.. Algoritmo de la burbuja.. Algoritmo heapsort.. Algoritmo quicksort. 7. Algoritmo countingsort.. Algoritmo radixsort.. Algoritmo bucketsort.
3 . Introducción.. Algoritmo de inserción.. Algoritmo de selección.. Algoritmo de la burbuja.. Algoritmo heapsort.. Algoritmo quicksort. 7. Algoritmo countingsort.. Algoritmo radixsort.. Algoritmo bucketsort.
4 Introducción. Dado un conjunto de elementos a, a, a, a n sobre los que se puede establecer una relación de orden, se dice que la permutación a k, a k, a k,... a kn está ordenada si se verifica f(a k ) f(a k ) f(a k )... f(a kn )
5 Introducción. Los elementos a ordenar pueden ser complejos: Llamaremos clave al campo utilizado en la ordenación. Type Alumno is Record DNI : Natural; Matricula : string (..); Nombre : string (..); Apellidos : string (..); End record;
6 Introducción. Ordenación Sobre la misma estructura a ordenar (in situ). Sobre estructuras adicionales. Ordenación Interna. Sobre memoria principal. Externa. Sobre memoria secundaria. Nos centraremos en la ordenación interna de vectores de números enteros.
7 Introducción. Algoritmo natural: Es más rápido si la estructura está ordenada con anterioridad. (Ya sea de forma total o parcial) Algoritmo estable: Mantiene el orden relativo de los elementos con la misma clave. (Útil si los elementos han sido ordenados previamente por otra clave) 7
8 . Introducción.. Algoritmo de inserción.. Algoritmo de selección.. Algoritmo de la burbuja.. Algoritmo heapsort.. Algoritmo quicksort. 7. Algoritmo countingsort.. Algoritmo radixsort.. Algoritmo bucketsort.
9 Algoritmo de inserción. h c e v n- s n p Secuencia original. Método h c e v n- s n p Elementos ordenados. Elementos desordenados. h c e v n- s n p Insertar en el lugar adecuado de la zona ordenada. c h e v n- s n p Repetir el proceso para el resto de los elementos.
10 Algoritmo de inserción. () () () () () () Ejemplo
11 Algoritmo de inserción. Implementación for i in A'First+..A'Last loop valor := A(i); j := i - ; while (j in A'Range) and then (A(j)>valor) loop A (j+) := A (j); j := j - ; end loop; A(j+) := valor; end loop; O ( n )
12 . Introducción.. Algoritmo de inserción.. Algoritmo de selección.. Algoritmo de la burbuja.. Algoritmo heapsort.. Algoritmo quicksort. 7. Algoritmo countingsort.. Algoritmo radixsort.. Algoritmo bucketsort.
13 Algoritmo de selección. h e c v n- s n p Secuencia original. Método h e c v n- s n p Busca el menor entre él y el resto. c e h v n- s n p Lo intercambia con el menor. c e h v n- s n p Repetir el proceso para el resto de los elementos.
14 () () () () () () Algoritmo de selección. Ejemplo
15 Algoritmo de selección. for i in A'First..A'Last- loop valor_min := A (i); indice_min := i; for j in i+..a'last loop if A (j) < valor_min then valor_min := A (j); indice_min := j; end if; end loop; A (indice_min) := A (i); A (i) := valor_min; end loop; Implementación O ( n )
16 . Introducción.. Algoritmo de inserción.. Algoritmo de selección.. Algoritmo de la burbuja.. Algoritmo heapsort.. Algoritmo quicksort. 7. Algoritmo countingsort.. Algoritmo radixsort.. Algoritmo bucketsort.
17 Algoritmo de la burbuja. h c e v n- s n p Secuencia original. Método h c e v n- s n p h h c c e e v v n- p n- p n s n s Se van comparando los elementos contiguos y si están desordenados se intercambian. h c e v n- p n s c h e v n- p n s El menor ya está colocado. Repetir el proceso para el resto. 7
18 Algoritmo de la burbuja. () () () () () () Ejemplo
19 Algoritmo de la burbuja. (7) () () () () Ejemplo
20 Algoritmo de la burbuja. () () () () Ejemplo
21 Algoritmo de la burbuja. () (7) () Ejemplo
22 Algoritmo de la burbuja. Ejemplo () ()
23 Algoritmo de la burbuja. for i in A'First+..A'Last loop for j in reverse i..a'last loop if A(j-) > A(j) then v := A(j); A(j) := A(j-); A(j-) := v; end if; end loop; end loop; Implementación Se puede mejorar haciendo que termine si no se produce ningún intercambio.
24 Algoritmo de la burbuja. for i in A'First+..A'Last loop cambio := False; for j in reverse i..a'last loop if A(j-) > A(j) then v := A(j); A(j) := A(j-); A(j-) := v; cambio := True; end if; end loop; exit when not cambio; end loop; Implementación O ( n )
25 . Introducción.. Algoritmo de inserción.. Algoritmo de selección.. Algoritmo de la burbuja.. Algoritmo heapsort.. Algoritmo quicksort. 7. Algoritmo countingsort.. Algoritmo radixsort.. Algoritmo bucketsort.
26 Algoritmo heapsort. Un montículo se puede representar como un árbol binario completo. a Debe tener todos sus niveles completos excepto el último que puede no estarlo. d b e f c Los niveles se rellenan de izquierda a derecha.
27 Algoritmo heapsort. Se pueden representar sobre un array. b a c a b c d e f d e f nodo i Padre i / Hijo izq. i Hijo der. i + Ejemplo: Si i = a b c d e f Padre / = Hijo izq. x = Hijo der. x+ = 7
28 Algoritmo heapsort. Montículo Min-heap Padre hijo. La raíz contiene el mínimo. Suele utilizarse para colas de prioridad. Max_heap Padre hijo La raíz contiene el máximo. Es el que usaremos para heapsort.
29 Algoritmo heapsort. c e v n- s n p Método Construcción del montículo. (Respetando las reglas) v s p Equivalente v s p n- e n c e c
30 Algoritmo heapsort. Método v s p Equivalente v s p n- e n c e c
31 Algoritmo heapsort. Método v c Descolocado s p Equivalente c s p n- e n v e
32 Algoritmo heapsort. Método s e p Equivalente s e p n- c n v c Se repite el proceso hasta que todo el array esté ordenado. (El montículo se vacía)
33 Algoritmo heapsort. Ejemplo Construcción del montículo.
34 Algoritmo heapsort. Ejemplo Equivalente Equivalente
35 Algoritmo heapsort. Ejemplo Equivalente Equivalente
36 Algoritmo heapsort. Ejemplo Equivalente Equivalente
37 Algoritmo heapsort. Ejemplo Equivalente Equivalente 7
38 Algoritmo heapsort. Ejemplo Equivalente
39 Algoritmo heapsort. Ejemplo Equivalente
40 Algoritmo heapsort. Implementación limite := A'Last; construir_monticulo; for i in reverse A'First+.. A'Last loop v := A(A'First); A(A'First) := A(i); A(i) := v; limite := limite - ; colocar ((A'First)); end loop;
41 Algoritmo heapsort. Implementación procedure construir_monticulo is begin for i in reverse A'Range loop colocar (i); end loop; end construir_monticulo;
42 Algoritmo heapsort. procedure colocar (i : integer) is hijo_izq, hijo_der, mayor : integer; begin hijo_izq := * i; hijo_der := * i + ; if (hijo_izq <= limite) and then (A(hijo_izq) > A(i)) then mayor := hijo_izq; else mayor := i; end if; if (hijo_der <= limite) and then (A(hijo_der) > A(mayor)) then mayor := hijo_der; end if; if mayor /= i then v := A(i); A(i) := A(mayor); A(mayor) := v; colocar (mayor); end if; end colocar; Implementación O ( n log ( n ) )
43 . Introducción.. Algoritmo de inserción.. Algoritmo de selección.. Algoritmo de la burbuja.. Algoritmo heapsort.. Algoritmo quicksort. 7. Algoritmo countingsort.. Algoritmo radixsort.. Algoritmo bucketsort.
44 Algoritmo quicksort. c v e h n- f n p Secuencia original. Método c v e h n- f n p Selección de un pivote. c v e h n- f n p Buscar elementos fuera de orden respecto al pivote. A(i) pivote? A(j) pivote? c v e h n- f n p Si se encuentra una pareja, se intercambian. c f e h n- v n p Continúa el proceso hasta que se cruzan los índices.
45 Algoritmo quicksort. Tras el proceso anterior, el array tiene este aspecto: Método Elementos menores que el pivote y desordenados entre si. j i Elementos mayores que el pivote y desordenados entre si. Se repite el proceso para cada uno de los segmentos y se continúa hasta que todo el array haya sido ordenado.
46 Algoritmo quicksort. () i j () i j () i j () i j () i j () Pivote Ejemplo
47 7 Algoritmo quicksort. (7) Pivote i j () () i j () i j i j () () Pivote () i j () i j () i j Ejemplo
48 Algoritmo quicksort. () Ejemplo Pivote (7) () j i j i
49 Algoritmo quicksort. procedure QuickSort (izq, der : integer) is i, j : integer; Begin pivote := seleccionar_pivote; i := izq; j := der; loop while A(i) < pivote loop i := i + ; end loop; while A(j) > pivote loop j := j - ; end loop; if i <= j then Intercambiar (A(i), A(j)); i := i + ; j := j - ; end if; exit when i > j; end loop; if izq < j then QuickSort (izq, j); end if; if der > i then QuickSort (i, der); end if; end QuickSort;+ Implementación O ( n log ( n ) )
50 Algoritmo quicksort. Criterios de elección del pivote: El algoritmo funcionará correctamente con independencia del pivote elegido. Pero la elección puede influir en el tiempo de ejecución. El algoritmo será más eficiente cuando produzca particiones equilibradas.
51 Algoritmo quicksort. Criterios de elección del pivote: Criterio : Elegir el primer elemento. Funciona bien si la disposición del vector es aleatoria, pero es muy habitual que la lista ya esté algo ordenada. En esos casos es la peor opción!
52 Algoritmo quicksort. Criterios de elección del pivote: Criterio : Elegir un elemento de forma aleatoria. Muy buena opción. El problema es cómo generar la aleatoriedad y cómo hacerlo de forma rápida. Criterio : Elegir la mediana. Magnífica opción. El problema es que consumiría mucho tiempo.
53 Algoritmo quicksort. Criterios de elección del pivote: Criterio : Elegir la mediana de entre unos pocos elementos. Da muy buenos resultados hallando la mediana entre el primer elemento, el último y el central. function seleccionar_pivote return integer is v, centro : integer; Begin centro := (izq + der) / ; if A(izq) > A(centro) then v := A(izq); A(izq) := A(centro); A(centro) := v; end if; if A(izq) > A(der) then v := A(izq); A(izq) := A(der); A(der) := v; end if; if A(centro) > A(der) then v := A(centro); A(centro) := A(der); A(der) := v; end if; return A(centro); end seleccionar_pivote;
54 . Introducción.. Algoritmo de inserción.. Algoritmo de selección.. Algoritmo de la burbuja.. Algoritmo heapsort.. Algoritmo quicksort. 7. Algoritmo countingsort.. Algoritmo radixsort.. Algoritmo bucketsort.
55 Algoritmo countingsort. Método Es útil cuando los elementos de la entrada son discretos y están dentro de un intervalo de tamaño razonable.. Se crea un array de contadores C tal que C(i) contenga el número de apariciones de i.. Se modifica el array anterior para que C(i) contenga el número de elementos menores o iguales a i.. Se utiliza este array para situar cada elemento en su lugar adecuado. La salida se realiza sobre un nuevo array.
56 Algoritmo countingsort. Ejemplo Etapa
57 Algoritmo countingsort. 7 Ejemplo Etapa
58 Algoritmo countingsort. Etapa Ejemplo () () = =
59 Algoritmo countingsort. Ejemplo = = Etapa () ()
60 () Algoritmo countingsort. Ejemplo = = Etapa ()
61 Algoritmo countingsort Etapa for i in C'Range loop C(i) := ; end loop; for i in A'Range loop C(A(i)) := C(A(i)) + ; end loop; Etapa for i in C'First+..C'Last loop C(i) := C(i) + C(i-); end loop; Etapa for i in reverse A'Range loop B(C(A(i))) := A(i); C(A(i)) := C(A(i)) - ; end loop; Implementación O ( n )
62 . Introducción.. Algoritmo de inserción.. Algoritmo de selección.. Algoritmo de la burbuja.. Algoritmo heapsort.. Algoritmo quicksort. 7. Algoritmo countingsort.. Algoritmo radixsort.. Algoritmo bucketsort.
63 Algoritmo radixsort. Puede utilizarse cuando las claves se componen de secuencias de elementos que admiten un orden. (números, letras, fechas,...) Básicamente, en el computador todo se representa con números. No se necesita realizar comparaciones entre las claves.
64 Algoritmo radixsort. Ejemplo
65 Algoritmo radixsort. Ejemplo
66 Algoritmo radixsort. Ejemplo
67 Algoritmo radixsort. Ejemplo
68 Algoritmo radixsort. Ejemplo
69 Algoritmo radixsort. Ejemplo
70 Algoritmo radixsort. Ejemplo
71 Algoritmo radixsort. Implementación for pos in..num_digitos loop for i in A'Range loop Distribuir (A(i), pos); end loop; for i in A'Range loop Recargar (A(i)); end loop; end loop; O ( n ) 7
72 Algoritmo radixsort. Dos modalidades: Radix LSD Radix MSD El tratamiento de las claves se realiza de derecha a izquierda. Útil con claves numéricas. El tratamiento de las claves se realiza de izquierda a derecha. Útil con claves alfabéticas. 7
73 . Introducción.. Algoritmo de inserción.. Algoritmo de selección.. Algoritmo de la burbuja.. Algoritmo heapsort.. Algoritmo quicksort. 7. Algoritmo countingsort.. Algoritmo radixsort.. Algoritmo bucketsort. 7
74 Algoritmo bucketsort. Adecuado cuando los elementos de la entrada se distribuyen de forma aleatoria y uniforme sobre un determinado intervalo. Método. Para n elementos a ordenar se crean n cubetas. En cada una se almacenan aquellos que cumplen una determinada condición (excluyente) de orden.. Se distribuyen los elementos entre las cubetas.. En cada cubeta se ordenan mediante inserción.. Se sacan de las cubetas de forma ordenada. Existe una variante recursiva en la que la ordenación dentro de cada cubeta se hace también con bucketsort. 7
75 Algoritmo bucketsort. Ejemplo
76 Algoritmo bucketsort. Ejemplo
77 Algoritmo bucketsort. Ejemplo 7 Ordenar mediante inserción
78 Algoritmo bucketsort. Ejemplo
79 Algoritmo bucketsort. Ejemplo
80 Algoritmo bucketsort. Implementación A : array (..max) of integer := (...); type puntero is access celda; type celda is record N : integer; P : puntero; end record; cubeta : array (..max-) of puntero := (others => null);
81 Algoritmo bucketsort. Implementación for i in A'Range loop distribuir (A(i)); end loop; for i in cubeta'range loop ordenar_cubeta (i); end loop; concatenar_cubetas;
82 Algoritmo bucketsort. Implementación procedure distribuir (num : integer) is n : integer; begin n := num / ; c := cubeta(n); cubeta(n) := new celda'(num, c); end distribuir;
83 Algoritmo bucketsort. Implementación procedure concatenar_cubetas is i : integer; begin i := A'Last; for j in reverse cubeta'range loop c := cubeta(j); while c /= null loop A(i) := c.n; c := c.p; i := i - ; end loop; end loop; end concatenar_cubetas;
84 Algoritmo bucketsort. Implementación for i in A'Range loop distribuir (A(i)); end loop; for i in cubeta'range loop ordenar_cubeta (i); end loop; concatenar_cubetas; O ( n ) O ( n ) O ( n ) Algoritmo de inserción O ( n )? O ( n ) La aleatoriedad uniforme de los elementos a ordenar hace que el número de elementos esperados en cada cubeta sea (o muy pequeño). Así, la complejidad de la ordenación deja de ser significativa.
<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 detallesARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES
ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES Introducción al tema a. Formar grupos de 4 personas b. Tomar una hoja en blanco y una lapicera o lápiz c. En la hoja en blanco diseña un
Más detallesSorting++ Herman Schinca. Clase 21. 10 de Junio de 2011
Sorting++ Herman Schinca Clase 21 10 de Junio de 2011 Recordando Ya vimos 3 algoritmos de ordenamiento basados en la comparación entre elementos: Selection, Insertion y Bubble. Los 3 en peor caso (cuando
Más detallesARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES
ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES Características ARBOLES - CONCEPTOS Cada elemento del árbol se relaciona con cero o más elementos a quienes llama hijos. Si el árbol no
Más detallesAmpliación de Estructuras de Datos
Ampliación de Estructuras de Datos Amalia Duch Barcelona, marzo de 2007 Índice 1. Diccionarios implementados con árboles binarios de búsqueda 1 2. TAD Cola de Prioridad 4 3. Heapsort 8 1. Diccionarios
Más detallesVI Colas de prioridad
VI Colas de prioridad Una cola de prioridad (cat: cua de prioritat; ing: priority queue) es una colección de elementos donde cada elemento tiene asociado un valor susceptible de ordenación denominado prioridad.
Más detalles324 MR Versión 1 Prueba Integral 1/3 Semana 10 Lapso 2015-2
324 MR Versión 1 Prueba Integral 1/3 UNIVERSIDAD NACIONAL ABIERTA VICERRECTORADO ACADÉMICO ÁREA INGENIERÍA MODELO DE RESPUESTA ASIGNATURA: Computación II CÓDIGO: 324 MOMENTO: Prueba Integral FECHA DE APLICACIÓN:
Más detallesAlgoritmos de ordenación
Revision History Sebastián Gurin (Cancerbero) Copyright 2004 by Sebastián Gurin Revision 1 30 de noviembre de 2004 Revised by: Cancerbero Sobre la licencia de este documento Copyright (c) 2004 Sebastián
Más detallesNotació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 detallesAlgoritmos y Programación Clase 8
Algoritmos y Programación Ordenamiento y Búsqueda Anexo: Uso de Procedimientos Sub y Procedimientos Function 1 EXAMEN 1. Lunes 16 de abril 4 pm. 2. Tema: Lo visto hasta la clase de hoy. 2 Contenido Ordenamiento
Más detallesProgramación. Tema 8: Tablas Hash. Apuntes elaborados por: Eduardo Quevedo, Aaron Asencio y Raquel López Revisado por: Javier Miranda el????
Programación. Tema : Tablas Hash /Mayo/ Apuntes elaborados por: Eduardo Quevedo, Aaron Asencio y Raquel López Revisado por: Javier Miranda el???? Tema : Tabla Hash Las tabla hash aparece para conseguir
Más detalles3. COLA DE PRIORIDAD DEFINICION (I)
3. COLA DE PRIORIDAD DEFINICION (I) Conjunto de elementos ordenados con las operaciones: Crear ( ) > ColaPrioridad EsVacio () > Boolean Insertar (ColaPrioridad, Item) > ColaPrioridad BorrarMínimo (ColaPrioridad)
Más detallesTema Árboles generales. 9.2 Árboles binarios 9.3 Árboles de búsqueda
Informática Haskell Matemáticas Curso 2004-2005 Pepe Gallardo Universidad de Málaga Tema 9. Árboles 9.1 Árboles generales 9.2 Árboles binarios 9.3 Árboles de búsqueda 9.1 Árboles generales Un árbol es
Más detallesEstructuras de Datos. Montículos. Montículos. Montículos. Tema 3. Montículos. Definiciones básicas: Definiciones básicas:
Estructuras de Datos Tema. 1. Definiciones básicas 2. Implementación. Operaciones con montículos 4. Definiciones básicas: En un árbol binario completo todos los niveles del árbol (excepto tal vez el último)
Más detallesParte II: Estructuras de datos y algoritmos
Parte II: Estructuras de datos y algoritmos Tema 11. Tipos abstractos de datos. Conceptos básicos. Listas. Pilas. Colas. Vectores. Conjuntos. Mapas. Árboles. Árboles binarios. GRUPO DE COMPUTADORES Y TIEMPO
Más detallesTema: 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 detallesTema 8: Algoritmos de ordenación y búsqueda
Tema 8: Algoritmos de ordenación y búsqueda Objetivos: en este tema se presentan algoritmos que permiten buscar un elemento dentro de una colección y ordenar una colección en base a algún criterio (el
Más detallesÁRBOLES GENERALES Y Y ESTRUCTURAS DE ÍNDICES DEFINICIONES Y REPRESENTACIONES DEFINICIONES Y REPRESENTACIONES. NOMENCLATURA SOBRE ÁRBOLES. DECLARACIÓN Y REPRESENTACIÓN.. CONSTRUCCIÓN.. ÁRBOLES 2-3-4. ÁRBOLES
Más detallesALGORITMOS DE ORDENACIÓN Y BÚSQUEDA
6 ALGORITMOS DE ORDENACIÓN Y BÚSQUEDA OBJETIVOS Después del estudio de este capítulo usted podrá: Conocer los algoritmos basados en el intercambio de elementos. Conocer el algoritmo de ordenación por inserción.
Más detallesTema 4.- Pilas y Colas
Apuntes elaborados por: Eduardo Quevedo, Raquel López y Aaron Asencio Revisado por: Javier Miranda el???? Tema 4.- Pilas y Colas Las pilas y colas son estructuras de datos que se utilizan generalmente
Más detalles3.2. Programación estructurada. Principal. Modulo 1 Modulo 2 Modulo 3 Modulo 4. Modulo Modulo Modulo 3 1 Modulo 4 1 Modulo 4 2. Pág.
CAP. 3. PROGRAMACION ESTRUCTURADA 3.1. Técnicas de programación Las herramientas de programación fundamentalmente los diagramas de flujo, son las representaciones gráficas utilizada para el diseño de algoritmos
Más detallesAlgoritmos de Ordenamiento
Algoritmos de Ordenamiento Fernando A. Lagos B. Copyleft 2007 INDICE 1 Introducción Pág. 3 2 Tipos de Algoritmos Pág. 4 2.1 Algoritmos iterativos Pág. 5 2.2 Algoritmos recursivos Pág. 6 3 Método de la
Más detallesIntegrantes. Leonardo Herrera Cristian Fernandez Jorge A Mondragón. Análisis y Diseño de Algoritmos. Docente Diana Mabel Díaz Herrera.
Integrantes Leonardo Herrera Cristian Fernandez Jorge A Mondragón Análisis y Diseño de Algoritmos Docente Diana Mabel Díaz Herrera HeapSort Universidad Piloto de Colombia Facultad de Ingeniería de Sistemas
Más detallesEstructuras de datos: Árboles binarios de
Estructuras de datos: Árboles binarios de búsqueda, Dep. de Computación - Fac. de Informática Universidad de A Coruña Santiago Jorge santiago.jorge@udc.es Árboles binarios de búsqueda, Table of Contents
Más detallesEstructura de datos Tema 6: Tablas de dispersión (hashing)
Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 6: Tablas de dispersión (hashing) Prof. Montserrat Serrano Montero ÍNDICE Conceptos básicos Funciones hash
Más detallesTecnólogo Informático- Estructuras de Datos y Algoritmos- 2009
Árboles Ejemplos de estructuras arborescentes: con forma de árbol Regla de Alcance: los objetos visibles en un procedimiento son aquellos declarados en él mismo o en cualquier ancestro de él (cualquier
Más detallesExamen de Introducción a las Redes de Computadoras y Comunicación de Datos (ref: sirc0503.doc) 28 de febrero de 2005
Examen de Introducción a las Redes de Computadoras y Comunicación de Datos (ref: sirc0503.doc) 28 de febrero de 2005 Atención: para todos los ejercicios, suponga que dispone de los tipos de datos básicos
Más detallesAlgoritmos sobre secuencias y conjuntos de datos
Suma de la Subsecuencia Máxima Dept. de Computación, Universidade da Coruña alberto.valderruten@udc.es Índice Suma de la Subsecuencia Máxima 1 Suma de la Subsecuencia Máxima 2 Suma de la Subsecuencia Máxima
Más detallesCapítulo 2 ORDENACIÓN
Capítulo ORDENACIÓN. INTRODUCCIÓN Dado un conjunto de n elementos a, a,..., a n y una relación de orden total ( ) sobre ellos, el problema de la ordenación consiste en encontrar una permutación de esos
Más detallesInstituto de Computación - Facultad de Ingeniería - Universidad de la República
Parcial de Programación 2 Julio de 2011 Generalidades: La prueba es individual y sin material. Duración: 3hs. Sólo se contestan dudas acerca de la letra de los ejercicios. Escriba las hojas de un sólo
Más detallesAgradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1
Prologo Agradecimientos Nota de los autores Índice general I III V VII 1 Problemas, algoritmos y programas 1 1.1 Programas y la actividad de la programación.................... 4 1.2 Lenguajes y modelos
Más detalles3. ESTRUCTURAS DE DATOS NO LINEALES
3. ESTRUCTURAS DE DATOS NO LINEALES 3.1 Conjuntos 3.2 Árboles 3.3 Grafos 1 3.1 Conjuntos Índice Introducción Especificación del TAD TipoConjunto Implementaciones del TAD TipoConjunto Programación usando
Más detallesEstructuras 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 detallesAnalisis de algoritmos
Analisis de algoritmos Eficiencia Es la capacidad de disponer de un recurso. En el caso de los algoritmos, la eficiencia se logra haciendo el mejor uso posible de los recursos del sistema. Recursos Qué
Más detallesAnálisis probabilístico y algoritmos aleatorizados
Análisis probabilístico y algoritmos aleatorizados Johan Van Horebeek, horebeek@cimat.mx Análisis probabilístico: considerar el input de un algoritmo como de cierta distribución probabilística. Algoritmo
Más detallesLa eficiencia de los programas
La eficiencia de los programas Jordi Linares Pellicer EPSA-DSIC Índice General 1 Introducción... 2 2 El coste temporal y espacial de los programas... 2 2.1 El coste temporal medido en función de tiempos
Más detallese-mail: mtoledo@dgrfsa.gov.ar
Arreglos Introducción a las Estructuras de Datos. Arreglos Unidimensionales: Vectores Vectores Estáticos en VB Vectores Dinámicos en VB Ordenando un Vector Introducción a las Estructuras de Datos. Una
Más detallesAlgoritmos de Strings. Héctor Navarro
lgoritmos de Strings Héctor Navarro Substrings Dado un string T (posiblemente muy grande) y un patrón P (de tamaño menor), encontrar la primera (o todas) las apariciones de P en T Solución trivial de (NM)
Más detallesPRÁ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 detallesEligiendo algoritmos: El caso de ordenamiento
Eligiendo algoritmos: El caso de ordenamiento Horst H. von Brand * Universidad Técnica Federico Santa María Departamento de Informática Valparaíso, Chile vonbrand@inf.utfsm.cl Abstract The problem of sorting
Más detallesEscuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática
Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática Fundamentos de la informática 2. Algoritmos, diagramas de flujo y pseudocódigo Contenido Algoritmos Diagramas de flujo
Más detallesComplejidad de Algoritmos
Complejidad de Algoritmos Tema 5 Introducción Un algoritmo es una secuencia de instrucciones que resuelve un problema Puede tener diferentes implementaciones Para comparar las diferentes formas (algoritmos)
Más detalles1. Sea A una matriz cuadrada n x n, conteniendo la siguiente información en cada fila i. para 1 j k n para k
. Sea A una matriz cuadrada n x n, conteniendo la siguiente información en cada fila i Ai [, j] = 0 para j k n para k i i < j n Construya un algoritmo "Divide y Vencerás" que ordene las filas de la matriz
Más detalles2.2 Nombres, Ligado y Ámbito
2.2 Nombres, Ligado y Ámbito Ligado estático y dinámico, reglas de ámbito y prueba de tipos. Conceptos Nombres e Identificadores Variables Tipos Ámbito Constantes Nombres Identificador que designa en el
Más detallesCómo nombrar variables ( 2&
&'()*+,, *)-.&'*/0+!" #$ # http://www.escet.urjc.es/~aiiq/ Introducción a Visual Studio.NET Aprendiendo el IDE de Visual Basic.NET Elementos del lenguaje. Variables y estructuras de datos Introducción
Más detallesAnálisis probabilístico y Algoritmos Aleatorizados
Análisis probabilístico y Algoritmos Aleatorizados Andrés Becerra Sandoval Ponticia Universidad Javeriana 14 de julio de 2007 Lenguajes III Introducción La probabilidad puede ayudarnos a medir la complejidad
Más detallesPlanificaciones 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ás detallesDEFINICION. Ing. M.Sc. Fulbia Torres Asignatura: Estructuras de Datos Barquisimeto 2006
ARBOLES ESTRUCTURAS DE DATOS 2006 DEFINICION Un árbol (tree) es un conjunto finito de nodos. Es una estructura jerárquica aplicable sobre una colección de elementos u objetos llamados nodos; uno de los
Más detallesAlgorítmica y Lenguajes de Programación. Ordenación (i)
Algorítmica y Lenguajes de Programación Ordenación (i) Ordenación. Introducción A lo largo del curso hemos visto distintas formas de almacenar datos: Vectores. Matrices. Ficheros Listas (pilas y colas)
Más detallesProgramación de Sistemas
Programación de Sistemas Algoritmos de Ordenación Índice Por qué es importante la ordenación? Un par de ejemplos InsertionSort QuickSort Para cada uno veremos: En qué consisten, Casos extremos Eficiencia
Más detallesTema 3.- Predicados y sentencias condicionales
UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO PROGRAMACIÓN DECLARATIVA INGENIERÍA INFORMÁTICA ESPECIALIDAD DE COMPUTACIÓN CUARTO CURSO PRIMER
Más detallesTema 2 Descripción de VHDL (2/2)
TECNOLOGÍA DE COMPUTADORES Tema 2 Descripción de VHDL (2/2) Agustín Álvarez Marquina Tipos de sentencias en VHDL Sentencias concurrentes PROCESS Asignación de señal BLOCK Llamadas a procedimientos Llamadas
Más detallesELO320 Estructuras de Datos y Algoritmos. Arboles Binarios. Tomás Arredondo Vidal
ELO320 Estructuras de Datos y Algoritmos Arboles Binarios Tomás Arredondo Vidal Este material está basado en: Robert Sedgewick, "Algorithms in C", (third edition), Addison-Wesley, 2001 Thomas Cormen et
Más detallesUNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO. Introducción FACULTAD DE INGENIERÍA. Ordenación
Introducción Uno de los procedimientos más comunes y útiles en el procesamiento de datos, es la clasificación u ordenación de los mismos. Se considera ordenar al proceso de reorganizar un conjunto dado
Más detallesUnidad 2 Estructuras Lineales
Unidad 2 Estructuras Lineales 2.1. Arreglos Definición Arreglo: Es un acomodo de espacios (Como en una matriz) en los cuales es una colección de un tipo de dato, y pueden ser unidimensionales, bidimensionales
Más detallesAlgoritmos: Algoritmos sobre secuencias y conjuntos de datos
Algoritmos: Algoritmos sobre secuencias y conjuntos de datos Alberto Valderruten LFCIA - Departamento de Computación Facultad de Informática Universidad de A Coruña, España www.lfcia.org/alg www.fi.udc.es
Más detalles7.4. UTILIDADES DE LAS PILAS
7.4. UTILIDADES DE LAS PILAS o Llamadas a subprogramas o Paso de programas recursivos a iterativos o Un caso especial, quick_sort iterativo. o Equilibrado de símbolos o Tratamiento de expresiones aritméticas
Más detallesArboles Binarios de Búsqueda
Arboles Binarios de Búsqueda Algoritmos y Estructuras de Datos Departamento de Electricidad y Electrónica (UPV/EHU) Arboles Binarios de Búsqueda p.1/52 Arboles Binarios Arbol binario: árbol ordenado de
Más detallesCAPÍTULO 10 ALGORITMOS DE ORDENACIÓN Y BÚSQUEDA. 10.7. Búsqueda en listas 10.8. Resumen 10.9. Ejercicios 10.10. Problemas
CAPÍTULO 10 ALGORITMOS DE ORDENACIÓN Y BÚSQUEDA C O N T E N I D O 10.1. Ordenación 10.2. Ordenación por burbuja 10.3. Ordenación por selección 10.4. Ordenación por inserción 10.5. Ordenación Shell 10.6.
Más detallesProgram Orden; Uses crt; Const n=100; Type vector= array[1..n] of integer; Var a,b : vector; prim, ulti,i, ne : integer; metodo : char;
Program Orden; Uses crt; Const n=100; Type vector= array[1..n] of integer; Var a,b : vector; prim, ulti,i, ne : integer; metodo : char; Function PosMaximo(VAR a:vector;i,j:integer):integer; (* devuelve
Más detalles7. Agrupamiento (clustering)
7. Agrupamiento (clustering) INMUEBLES y CONTRATOS I IA4 En medio, 8 Centro Castellón 600 C 004 Q6 600 Visa 00 S /6/99 /5/00 I IL94 Riu Ebre, 4 Ronda Sur Castellón 50 C 0075 Q76 50 Efectivo 700 N //00
Más detallesTECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL
1 TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL TECNOLOGÍA DE LA COMPUTADORA FACILITADOR: PARTICIPANTE: DAVID, CHIRIQUÍ 2015 2 Qué es un programa? Un programa informático es un conjunto
Más detallesI. E. NORMAL SUPERIOR SANTIAGO DE CALI ASIGNATURA DE TECNOLOGÍA E INFORMÁTICA LIC. CARLOS ANDRÉS CASTAÑEDA HENAO GRADO 8º
I. E. NORMAL SUPERIOR SANTIAGO DE CALI ASIGNATURA DE TECNOLOGÍA E INFORMÁTICA LIC. CARLOS ANDRÉS CASTAÑEDA HENAO GRADO 8º EXCEL CONTENIDO: Gráficos Funciones Gráficos en Excel Un gráfico es la representación
Más detallesPRÁCTICA: LENGUAJE VHDL
PRÁCTICA: LENGUAJE Introducción Los lenguajes permiten manejar mejor grandes tamaños Los lenguajes son más flexibles que las tablas Los lenguajes son légibles por las máquinas más fácilmente que los gráficos
Más detallesOperaciones con vectores
Fundamentos de Informática 2012-2013 Laboratorio 12: Vectores (2) Objetivos: Practicar con algoritmos típicos con vectores (arrays de una dimensión) Operaciones con vectores Interfaz Figura 12.1. Interfaz
Más detallesIntroducción al tipo Vector Cómo guardar una colección de datos conceptualmente relacionados? - almacenar los 100 primeros números primos, - al
Tema 6. Vectores 1. Introducción y Definiciones 2. Operaciones elementales con vectores 3. Definición y manejo de vectores (arrays arrays) en C 4. Operación de Recorrido secuencial de un vector 5. Operación
Más detallesNIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS
1 NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS Árboles Binarios y Árboles Binarios Ordenados 2 Contenido Árboles binarios Iteradores Árboles binarios ordenados 3 Árboles binarios Algunas definiciones para
Más detallesEstructuras de Datos. Estructuras de Datos para Conjuntos Disjuntos
Estructuras de Datos. Estructuras de Datos para Conjuntos Disjuntos Santiago Zanella 2008 1 Introducción Para ciertas aplicaciones se requiere mantener n elementos distintos agrupándolos en una colección
Más detallesUNIVERSIDAD AUTONOMA DE BAJA CALIFORNIA DIRECCION GENERAL DE ASUNTOS ACADEMICOS PROGRAMA DE ASIGNATURA
UNIVERSIDAD AUTONOMA DE BAJA CALIFORNIA DIRECCION GENERAL DE ASUNTOS ACADEMICOS PROGRAMA DE ASIGNATURA I. DATOS DE IDENTIFICACION 1. Unidad Académica: Facultad de Ciencias 2. Programa (s) de estudio: Licenciatura
Más detallesEjemplo de la implementación del llenado de un arreglo de forma aleatoria
OBJETIVO 6.3. MANEJO DE ARREGLOS LLENADO DE UN VECTOR Un arreglo se puede llenar de dos formas una de manera aleatoria en donde el compilador llena el arreglo y otra forma es darle la oportunidad al usuario
Más detallesGUÍA BÁSICA DE SCHEME v.4
Esta guía básica pretende ser una introducción elemental al lenguaje de programación Scheme. Se presenta como una guía de comienzo rápido de tal forma que permita conocer de una forma muy esquemática los
Más detallesEjercicio 1.- En las construcciones siguientes para qué valores de la variable RangoI se ejecutará la sentencia de asignación?
Introducción a la programación - DISI - Facultad de Informática UCM (2009-2010) Ing. Técnica en Informática de Gestión - 1º B Profesores: Federico Peinado Gil y Pablo Moreno Ger Ejercicio 1.- En las construcciones
Más detallesEl programa que permite el manejo de la base de datos tiene la siguiente funcionalidad:
El TAD Diccionario Cuando se usa un conjunto en el diseño de un algoritmo podría no ser necesario contar con operaciones de unión o intersección. A menudo lo que se necesita es simplemente manipular un
Más detallesPASCAL. Repaso de Pascal Introducción a Python. Pascal. Pascal - introducción. Pascal Declaraciones: Variables. Pascal Declaraciones: Tipos 07/04/2015
Repaso de Pascal Introducción a Python Lenguajes de Programación 2015 PASCAL Pascal - introducción Pascal es un Lenguaje basado en el paradigma imperativo clasico Estructura la programación mediante Funciones
Más detallesAlgoritmos de Búsqueda y Ordenación. Rosalía Laza Fidalgo. Departamento de Informática. Universidad de Vigo
Algoritmos de Búsqueda y Ordenación. Rosalía Laza Fidalgo. Departamento de Informática. Universidad de Vigo Complejidad Cómo podemos medir y comparar algoritmos, si estos se ejecutan a distintas velocidades
Más detallesEstructuras en LabVIEW.
Estructuras en LabVIEW. Sumario: 1. Ejecución según el flujo de datos. 2. Estructuras básicas disponibles en LabVIEW. a) Estructura Sequence. b) Estructura Case. c) Estructura For Loop. d) Estructura While
Más detallesAnálisis amortizado El plan:
Análisis amortizado El plan: Conceptos básicos: Método agregado Método contable Método potencial Primer ejemplo: análisis de tablas hash dinámicas Montículos agregables (binomiales y de Fibonacci) Estructuras
Más detallesCómo ordenar una lista de números?
Cómo ordenar una lista de números? Germán Ariel Torres Resumen. Este trabajo trata acerca de métodos y técnicas usadas para el ordenamiento eficiente de listas de números. Se analizan los métodos básicos,
Más detallesSENA Distrito Capital Centro de Electricidad, Electrónica y Telecomunicaciones ADSI - Ing. Espec. Javier Vaquiro
SENA Distrito Capital Centro de Electricidad, Electrónica y Telecomunicaciones ADSI - Ing. Espec. Javier Vaquiro 1. Sintaxis básica 2. Tipos de datos 3. Variables 4. Constantes 5. Expresiones y operadores
Más detallesla 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 detalles2. EXPRESIONES 3. OPERADORES Y OPERANDOS 4. INDENTIFICADORES COMO LOCALIDADES DE MEMORIA
CONTENIDOS: 1. TIPOS DE DATOS 2. EXPRESIONES 3. OPERADORES Y OPERANDOS 4. INDENTIICADORES COMO LOCALIDADES DE MEMORIA OBJETIO EDUCACIONAL: El alumno conocerá las reglas para cambiar fórmulas matemáticas
Más detallesÁRBOLES BINARIOS 2002. GRUPO # 22 Alumnos: Aguilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny
ÁRBOLES BINRIOS 2002 GRUPO # 22 lumnos: guilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny ESTRUCTURS DE DTOS TEM 6 Estructuras de datos no lineales. Árboles binarios ÍNDICE 6.1. Introducción.
Más detallesGeneración de variables aleatorias continuas Método de la transformada inversa
Generación de variables aleatorias continuas Método de la transformada inversa Georgina Flesia FaMAF 16 de abril, 2013 Generación de v.a. discretas Existen diversos métodos para generar v.a. discretas:
Más detallesÁrboles. Cursos Propedéuticos 2015. Dr. René Cumplido M. en C. Luis Rodríguez Flores
Árboles Cursos Propedéuticos 2015 Dr. René Cumplido M. en C. Luis Rodríguez Flores Contenido de la sección Introducción Árbol genérico Definición y representación Árboles binarios Definición, implementación,
Más detalles11. Algunas clases estándar de Java (II)
122 A. García-Beltrán y J.M. Arranz 11. Algunas clases estándar de Java (II) Objetivos: a) Presentar la clase predefinida en Java para trabajar con arrays b) Interpretar el código fuente de una aplicación
Más detalles1.1 Criba de Eratóstenes: Cómo colar números primos.
Sección Tecnologías de Internet Revista digital Matemática, Educación e Internet (www.cidse.itcr.ac.cr/revistamate/). Vol. 9, N o 2. 2009 Criba de Eratóstenes: Cómo colar números primos. Implementación
Más detallesARREGLOS DEFINICION GENERAL DE ARREGLO
ARREGLOS DEFINICION GENERAL DE ARREGLO Conjunto de cantidades o valores homogéneos, que por su naturaleza se comportan de idéntica forma y deben de ser tratados en forma similar. Se les debe de dar un
Más detallesUTN FRR Ingeniería en Sistemas de Información Algoritmos y Estructuras de Datos Archivos Directos GUIA DE ESTUDIO: ARCHIVOS DIRECTOS
GUIA DE ESTUDIO: ARCHIVOS DIRECTOS Introducción: Una característica común de los tipos de datos que hemos visto hasta ahora es que la información que cargamos se mantiene vigente solamente mientras está
Más detallesTema 2. El lenguaje JAVA
Tema 2. El lenguaje JAVA Nomenclatura habitual Variables Tipos de variables Tipos primitivos Referencias Arrays Operadores Operadores de Java Precedencia de operadores Sentencias de control Sentencias
Más detallesEstructura de datos Tema 3: El TAD Lista lineal. Universidad de Valladolid. Departamento de informática. Campus de Segovia
Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 3: El TAD Lista lineal Prof. Montserrat Serrano Montero ÍNDICE El TAD lista lineal Implementación con estructuras
Más detalles1. Introducción 2. Esquema básico 3. Codificación 4. Evaluación 5. Selección 6. Operadores 7. Ejemplo. Algoritmos genéticos
1. Introducción 2. Esquema básico 3. Codificación 4. Evaluación 5. Selección 6. Operadores 7. Ejemplo Algoritmos genéticos Introducción Propuestos por Holland, mediados 70, computación evolutiva Popularizados
Más detallesAlgoritmos. Medios de expresión de un algoritmo. Diagrama de flujo
Algoritmos En general, no hay una definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten
Más detallesEstructuras 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 detallesTablas Hash y árboles binarios
Tablas Hash y árboles binarios Algoritmos Tablas hash Árboles Binarios Árboles Balanceados Tablas Hash Introducción Las tablas hash son estructuras tipo vector que ayudan a asociar claves con valores o
Más detallesEstructura de datos (arreglos) Vectores y Matrices
Apunte del curso PROGRAMACIÓN (FI-UBA,, J. T. P. Ing. Z. CATALDI; A.T.P. Srta. A Pauluzzi, Sr. C Corradino, Sr. F Gómez Estructura de datos (arreglos) Hasta aquí se han visto distintos tipos de estructuras
Más detallesMetodología de la Programación II. Recursividad
Metodología de la Programación II Recursividad Objetivos Entender el concepto de recursividad. Conocer los fundamentos del diseño de algoritmos recursivos. Comprender la ejecución de algoritmos recursivos.
Más detallesPROPIEDADES DE LOS CAMPOS. Cada campo de una tabla dispone de una serie de características que proporcionan un control
PROPIEDADES DE LOS CAMPOS Cada campo de una tabla dispone de una serie de características que proporcionan un control adicional sobre la forma de funcionar del campo. Las propiedades aparecen en la parte
Más detallesllamada a la función Val(num) cambiosigno(n) redondeo(num,3)
Resumen Subprogramas y Funciones del Usuario - 1- SUBRUTINAS o Subprogramas Y FUNCIONES Un subprograma o subrutina es una parte de codificación que realiza un proceso o procedimiento al que se puede acceder
Más detallesAlgoritmos 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 detallesDefinición de Memoria
Arquitectura de Ordenadores Representación de Datos en Memoria Abelardo Pardo abel@it.uc3m.es Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Definición de Memoria DRM-1 La memoria
Más detalles