Algoritmos de ordenación (I)
|
|
- Valentín Navarro Rivas
- hace 5 años
- Vistas:
Transcripción
1 de ordenación (I) Todos sabemos que los ordenadores, entre otras cosas, sirven para ordenar. Pero Cómo lo hacen? Existen distintos modos de hacerlo? Depende de lo que tengamos que ordenar? Es tan crítico elegir correctamente el método de ordenación? En este artículo divulgativo se pretende dar respuesta a estas y a otras preguntas, mostrando como funcionan los algoritmos de ordenación más importantes y discutiendo las claves a tener en cuenta para seleccionar el algoritmo más apropiado para un problema concreto. Introducción La ordenación es una operación básica en la vida diaria. El que uno sea más o menos hábil realizando pequeñas tareas cotidianas está directamente relacionado con el que las cosas implicadas estén más o menos ordenadas. La razón es obvia: es más sencillo buscar algo cuando los objetos están ordenados. Quién no ha pensado Tendría que ordenar los discos al buscar un disco de música en la estantería o, Nunca recuerdo si está por su nombre, su apellido, o por su nombre de pila al tratar de encontrar el teléfono de un amigo en nuestra agenda. Encontrar una lata de pimientos en la despensa también puede ser todo un reto. Es muy fácil recordar otras fuentes de pequeños problemas organizativos en la vida cotidiana (mesilla de noche, despacho, caja de herramientas, botiquín, trastero, etc.) Por tanto, parece evidente que las operaciones de ordenación y búsqueda son importantes y están estrechamente relacionadas. Eugenio Francisco Sánchez Úbeda Doctor Ingeniero del ICAI Instituto de Investigación Tecnológica y Departamento de Sistemas Informáticos de la Universidad Pontificia Comillas de Madrid, donde es coordinador del Área de Sistemas Inteligentes (ASI) Eugenio.Sanchez@iit.upco.es Algo similar ocurre en computación: La ordenación es seguramente la operación elemental más importante y por tanto, mejor estudiada. No en vano utilizamos el término ordenador para referirnos a lo que otros llaman computador o computer. Además, se puede afirmar con bastante seguridad que la gran mayoría de los datos generados por un a 28 anales
2 programa están ordenados de alguna manera y que la gran mayoría de los programas de un cierto tamaño necesitan realizar en algún momento una ordenación. FIGURA 1. LA ORDENACIÓN ES UNA OPERACIÓN BÁSICA EN LA VIDA DIARIA Por qué hay distintos algoritmos? Casi todos nosotros hemos aprendido, de forma más o menos inconsciente y a partir de la experiencia, varias maneras distintas de ordenar. Imaginemos, por ejemplo, que tenemos que ordenar una mano de cartas en una partida de mus o de poker. Seguramente la estrategia que seguiremos es muy diferente de la empleada cuando uno tiene que colocar por orden las 200 hojas de un informe desordenado que acaba de recoger del suelo. Además, posiblemente emplearemos una estrategia distinta si sabemos (o intuimos) que las hojas no están muy desordenadas. Si la mayoría de nosotros empleamos distintas estrategias de ordenación, no es de extrañar que existan algoritmos de ordenación distintos. Qué algoritmo emplear? El decidir qué algoritmo de ordenación es el mejor para nuestro problema no es una labor sencilla. Dicha decisión se debe basar en varios criterios que normalmente son difíciles de evaluar con exactitud. Volvamos al ejemplo del informe desordenado. Es después de recoger las hojas del suelo (y comprobar que están numeradas) cuando uno decide como ordenará el informe. Normalmente dicha decisión se realiza de forma inconsciente y tiene en cuenta ciertos criterios borrosos basados en el número de hojas a ordenar o en cómo de ordenadas estén las hojas. No es lo mismo ordenar 10 que 1000 hojas, como tampoco lo es ordenar algo que está totalmente desordenado que algo que está prácticamente ordenado. La decisión del algoritmo a emplear debe de tener en cuenta al menos las siguientes consideraciones: El número de objetos a ordenar FIGURA 2. EN LOS JUEGOS DE CARTAS SE EMPLEAN DISTINTAS ESTRATEGIAS DE ORDENACIÓN El tamaño de dichos objetos (cuanto cuesta moverlos) El nivel de desorden que aparece en el conjunto a ordenar Cuanto mayores sean nuestros recursos disponibles para realizar la ordenación, menos críticas serán las consideraciones anteriores. Desde el punto de vista informático, el disponer de más memoria principal y de un procesador más rápido significa que podremos ordenar más datos, de mayor tamaño y aanales 29
3 en menos tiempo. Sin embargo, una correcta selección del algoritmo puede significar un ahorro de recursos muy importante, fundamentalmente en el tiempo necesario para realizar la ordenación. Además, existen otras aspectos que no deben olvidarse y que pueden ser determinantes a la hora de elegir el algoritmo. Por ejemplo, si tenemos ordenados nuestros datos de clientes según su primer apellido y a continuación queremos ordenarlos atendiendo a su antigüedad pero sin perder la anterior ordenación (es decir, que para una misma antigüedad los clientes sigan ordenados por su primer apellido), estamos obligados a utilizar un algoritmo estable. Un algoritmo estable nos asegura que los objetos siempre conservan su posición relativa cuando tienen la misma clave. Es tan crítica la selección del algoritmo? FIGURA 3. LA SELECCIÓN DEL ALGORITMO DE ORDENACIÓN IMPLICA UNA DECISIÓN MULTI-ATRIBUTO La decisión de algoritmo a emplear debe de tener en cuenta al menos las siguientes consideraciones: El número de objetos a ordenar El tamaño de dichos objetos (cuánto cuesta moverlos) El nivel de desorden que aparece en el conjunto a ordenar La respuesta es sí, sin duda alguna. Una razón simple, pero de peso, la podemos encontrar en nosotros mismos: empleamos distintas estrategias de ordenación dependiendo de las características del problema. Una mala elección implica un gasto de recursos innecesario. Qué ocurre si intentamos ordenar un informe de 200 hojas, que está muy desordenado, como si fuera una mano de cartas? No es mejor hacer varios montones, ordenarlos por separado y luego juntarlo todo? Desde el punto de vista algorítmico la razón es la misma, aunque se expresa de una forma un poco más técnica. Se dice que un algoritmo es lineal si su tiempo de ejecución es directamente proporcional al número de datos a ordenar. Es decir, tarda el doble en ordenar el doble de datos. Un algoritmo cuadrático es mucho peor que uno lineal ya que para ordenar el doble de datos necesita cuatro veces más tiempo. En cualquier caso, uno podría pensar que si dispone de grandes recursos para realizar la ordenación, (mucha memoria principal y un procesador rápido), Por qué preocuparse del algoritmo si todos ordenan correctamente? Supongamos que una empresa dispone de un supercomputador capaz de realizar 100 millones de operaciones por segundo. Entre los miembros de su personal existen muy buenos programadores que emplean varios días en poner a punto un código máquina altamente eficiente que implementa un algoritmo de ordenación ineficiente (por ejemplo, cuadrático). Por otro lado, un estudiante tiene en casa un PC que realiza 1 millón de operaciones por segundo, es decir 100 veces más lento. Decide programar en un rato y utilizando un lenguaje de alto nivel un algoritmo muy eficiente (por ejemplo, lineal). Si el estudiante y la empresa ordenaran el mismo millón de datos, el primero tendría que esperar tan sólo unos pocos segundos para obtener el resultado, frente a las varias horas empleadas por el supercomputador de la empresa. Los distintos algoritmos de ordenación existentes describen de forma precisa como ordenar de forma creciente un conjunto de datos. a 30 anales
4 Normalmente los elementos a ordenar están almacenados en un vector. Dado que un elemento puede estar caracterizado por diversos atributos o campos, es necesario indicar el que se utilizará para ordenar. Dicho campo se suele denominar clave. Los numerosos algoritmos de ordenación se pueden clasificar atendiendo a distintos criterios. Una clasificación comúnmente aceptada distingue entre algoritmos de ordenación externa e interna. Los primeros se deben emplear cuando no es posible almacenar todos los datos a ordenar en un vector dentro de la memoria principal del ordenador, siendo necesario emplear durante la ordenación un dispositivo de almacenamiento externo como una cinta o un disco (de ahí su nombre). Los algoritmos de ordenación interna están pensados para cuando no existe dificultad en el acceso a los datos ya que se tienen almacenados en memoria RAM como un vector de elementos. En este artículo nos vamos a centrar en este tipo de algoritmos por ser los más empleados en la práctica. Además, existe un criterio adicional de economía de memoria RAM (es lo que se denomina ordenación in situ). En este artículo nos limitaremos a describir algoritmos de este tipo. Simples y sofisticados Atendiendo al número de objetos a ordenar se puede distinguir entre algoritmos simples y algoritmos sofisticados. Los FIGURA 4. ALGORITMOS DE ORDENACIÓN SIMPLES Y SOFISTICADOS Fácil Simples Inserción directa Selección directa Burbuja Pocos datos algoritmos simples (también denominados directos) son una buena solución cuando son pocos los elementos a ordenar. Cuando tenemos bastantes datos es muy conveniente optar por un algoritmo sofisticado. Tipo de operación? Tipo de ordenación? Compleja Sofisticados Heapsort Quicksort Muchos datos Ahora bien, el problema es saber qué significa pocos o bastantes datos. Lamentablemente no existe un umbral claro que permita saber cuándo no compensa emplear un algoritmo sofisticado ya que el valor óptimo dependería del ordenador y del código máquina que implemente el algoritmo. Un umbral razonable puede ser 10 elementos. Este dilema es similar al que aparece cuando tenemos que realizar una operación numérica. Si es sencilla lo lógico es emplear una calculadora. Encender el ordenador seguramente es demasiado costoso para luego simplemente multiplicar 75 por 342. Sin embargo, puede compensar arrancar el ordenador si tenemos que realizar muchas operaciones. simples Inserción directa Este algoritmo es el que empleamos típicamente y de forma natural para ordenar una mano de cartas. Los elementos (cartas) se dividen conceptualmente en dos conjuntos o secuencias, una ordenada (las ca- aanales 31
5 ras que tenemos en la mano) y otra desordenada (las cartas que están boca abajo en la mesa). Inicialmente todos los datos están en la secuencia desordenada. En cada paso se toma un elemento del conjunto desordenado (el siguiente) y se inserta en el sitio apropiado de la secuencia ordenada (de ahí el nombre del algoritmo). Como resultado, la zona desordenada va disminuyendo y la zona ordenada aumentando. Al final todos los datos estarán en el conjunto ordenado. Inserción Directa es muy útil cuando tenemos que ordenar pocos datos y sabemos que están bastante ordenados. Si no es así, aunque sean pocos datos, es mejor emplear Selección Directa. a Selecciona la última carta Mano (zona desordenada) FIGURA 5. INSERCIÓN DIRECTA Hay dos zonas: una zona desordenada (en azul) y una zona ordenada (en naranja). En cada iteración el algoritmo toma un elemento de la zona desordenada (el siguiente) y lo inserta en el sitio apropiado de la zona ordenada Inserta en la posición correcta 8 Cartas ya ordenadas 9 (Continuará en el próximo número) Bibliografía [1] T.H. Cormen, C.E. Leiseron y R.L. Rivest, Introduction to Algorithms, The MIT Press, [2] C.A.R. Hoare, Quicksort, The Computer Journal, Vol. 5, No. 1, pp , Abril [3] J. Jaja, A perspective on Quicksort, Computing in Science and Engineering, pp , Enero-Febrero [4] D.E. Knuth, El arte de programar ordenadores. Volumen 3: Ordenación y búsqueda, Editorial Reverté, [5] R. Sedgewick, en C++, Editorial Díaz de Santos, [6] M.A. Weiss, Estructuras de datos en Java, Addison Wesley, [7] N. Wirth, + estructuras de datos = programas, Ediciones del Castillo, Inserción Directa(A) 1 For i=2 to Tamaño(A) carta = A[i]; % selecciona última carta j=i-1; 2 While (j>0 & carta < A[j]) A[j+1]=A[j]; j=j-1; end 2 A[j+1]=carta; % inserta la carta end 1 A [i]: clave i: Posición en el vector A Elementos de la zona ordenada Elementos de la zona desordenada a 32 anales
Algoritmos. el algoritmo de ordenación. de ordenación (II) a 18 anales. En la primera parte de este. Introducción
Algoritmos de ordenación (II) Todos sabemos que los ordenadores, entre otras cosas, sirven para ordenar. Pero Cómo lo hacen? Existen distintos modos de hacerlo? Depende de lo que tengamos que ordenar?
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
CAPITULO II ORDENAMIENTO Y BUSQUEDA. Ivan Medrano Valencia
CAPITULO II ORDENAMIENTO Y BUSQUEDA Ivan Medrano Valencia ORDENACIÓN La ordenación o clasificación de datos (sort en inglés) es una operación consistente en disponer un conjunto estructura de datos en
7.1 Consideraciones. Considere la búsqueda de un libro en una biblioteca. Considere la búsqueda de un nombre en el directorio telefónico.
86 Capítulo 7. ORDENAMIENTO. 7.1 Consideraciones. Considere la búsqueda de un libro en una biblioteca. Considere la búsqueda de un nombre en el directorio telefónico. Si los elementos a ordenar son compuestos
Teoría de Algoritmos 2 o curso de Ingeniería Informática
Teoría de Algoritmos 2 o curso de Ingeniería Informática José Luis Verdegay Departamento de Ciencias de la Computación e Inteligencia Artificial http://decsai.ugr.es/ verdegay Horarios y duración de la
23. 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?
ANX-PR/CL/ GUÍA DE APRENDIZAJE. ASIGNATURA Algoritmica y complejidad. CURSO ACADÉMICO - SEMESTRE Primer semestre
ANX-PR/CL/001-01 GUÍA DE APRENDIZAJE ASIGNATURA Algoritmica y complejidad CURSO ACADÉMICO - SEMESTRE 2016-17 - Primer semestre GA_61CI_615000308_1S_2016-17 Datos Descriptivos Nombre de la Asignatura Titulación
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
Apunte de cátedra: Ordenación de Arreglos
Facultad de Ciencias Exactas, Ingeniería y Agrimensura (U.N.R.) Escuela de Ciencias Exactas y Naturales Departamento de Matemática Cátedra: Computación (L.M. - P.M.) Prof. responsable: Mgr. María del Carmen
Materia requisito: DOMINIOS COGNITIVOS (Objetos de estudio, temas y subtemas) I. Introducción al Análisis de Algoritmos.
UNIVERSIDAD AUTÓNOMA DE CHIHUAHUA Clave: Clave: FACULTAD DE INGENIERÍA ANÁLISIS DE ALGORITMOS PROPÓSITO DEL CURSO DES: Ingeniería Programa(s) Educativo(s): Ingeniería en Ciencias de la Computación Tipo
Algoritmos 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.
MSC. Oscar Alberto Chávez Bosquez LIA. Ericsson Saldívar Correa Robles. Fecha de elaboración: 28 de Mayo de 2010 Fecha de última actualización:
PROGRAMA DE ESTUDIO Algoritmos avanzados Universidad Juárez Autónoma de Tabasco Programa Educativo: Licenciatura en Informática Administrativa Área de Formación : Integral Profesional Horas teóricas: 2
Guía práctica de estudio 4 Algoritmos de búsqueda parte 1
Guía práctica de estudio 4 Algoritmos de búsqueda parte 1 Elaborado por: Revisión: Ing. Laura Sandoval Montaño Facultad de Ingeniería U.N.A.M. Guía Práctica 4 Estructura de datos y Algoritmos II Algoritmos
GUÍA DOCENTE ABREVIADA DE LA ASIGNATURA
GUÍA DOCENTE ABREVIADA DE LA ASIGNATURA G651 - Estructuras de Datos Doble Grado en Física y Matemáticas Grado en Ingeniería Informática Grado en Matemáticas Curso Académico 2018-2019 1. DATOS IDENTIFICATIVOS
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)
10. Algoritmos de ordenación
10. Algoritmos de ordenación Se describen aquí algunos algoritmos de ordenación. Los comentarios relativos a su eficacia se deben tomar en términos relativos, pues esa eficiencia va a depender del tipo
Experiencia 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
Tema 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
ANX-PR/CL/ GUÍA DE APRENDIZAJE
PROCESO DE COORDINACIÓN DE LAS ENSEÑANZAS PR/CL/001 ASIGNATURA 615000245 - PLAN DE ESTUDIOS 61IW - CURSO ACADÉMICO Y SEMESTRE 2017-18 - Primer semestre Índice Guía de Aprendizaje 1. Datos descriptivos...1
1.- Datos de la Asignatura
1.- Datos de la Asignatura Titulación Centro I. T. INFORMÁTICA DE GESTIÓN E.P. SUPERIOR DE ZAMORA Denominación Estructuras de datos Código 16899 Plan 2003 Ciclo 1º Curso 1º Carácter 1 TRONCAL Periodicidad
Estructura 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
Guía Docente ESCUELA POLITÉCNICA SUPERIOR ASIGNATURA PROGRAMACIÓN II CURSO SEMESTRE 2 GRADO (S) INGENIERÍA DE SISTEMAS DE
Guía Docente ASIGNATURA PROGRAMACIÓN II CURSO SEMESTRE 2 GRADO (S) INGENIERÍA DE SISTEMAS DE INFORMACIÓN MODALIDAD: PRESENCIAL CURSO 2014-2015 ESCUELA POLITÉCNICA SUPERIOR 1. IDENTIFICACIÓN DE LA ASIGNATURA
Programación (PRG) PRÁCTICA 10. Algoritmos de búsqueda
Programación (PRG) Facultad de Informática Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia 1. Introducción El objetivo de esta práctica es estudiar el comportamiento
Objetivo: Contenido
PROGRAMACIÓN BÁSICA Introducción Objetivo: El alumno describirá la importancia de la programación como herramienta en el quehacer del ingeniero. Contenido 1.1 Componentes: hardware, software. 1.2 Beneficios
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
ALGORITMO. Podemos encontrar muchas definiciones de algoritmo en los textos de programación, todas ellas muy similares:
Nuestra herramienta mental más importante para competir con la complejidad es la abstracción. Por tanto, un problema no deberá considerarse inmediatamente en términos de instrucciones de un lenguaje, sino
Universidad Autónoma del Estado de Hidalgo Instituto de Ciencias Básicas e Ingeniería Área Académica de Computación y Electrónica
Universidad Autónoma del Estado de Hidalgo Instituto de Ciencias Básicas e Ingeniería Área Académica de Computación y Electrónica Licenciatura en Sistemas Computacionales Estructura de Datos II Docente:
PLANIFICACIÓN DE LA DOCENCIA UNIVERSITARIA GUÍA DOCENTE. Principios matemáticos de computación
CENTRO UNIVERSITARIO DE TECNOLOGÍA Y ARTE DIGITAL PLANIFICACIÓN DE LA DOCENCIA UNIVERSITARIA GUÍA DOCENTE Principios matemáticos de computación 1. DATOS DE IDENTIFICACIÓN DE LA ASIGNATURA. Título: Facultad:
Problemas con resolución intuida pero que no sabemos programar directamente. (CU00116A)
aprenderaprogramar.com Problemas con resolución intuida pero que no sabemos programar directamente. (CU00116A) Sección: Cursos Categoría: Curso Bases de la programación Nivel I Fecha revisión: 2024 Autor:
Complejidad computacional (Análisis de Algoritmos)
Definición. Complejidad computacional (Análisis de Algoritmos) Es la rama de las ciencias de la computación que estudia, de manera teórica, la optimización de los recursos requeridos durante la ejecución
FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 2. Estructura de un Fichero. Operaciones. Básicas.
FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA Tema 2. Estructura de un Fichero. Operaciones Básicas. 1.- Introducción. 2.- Organización: Campos y Registros. 3.- Acceso a la Información.
Esquemas algorítmicos: Introducción
Algoritmia Algoritmia = = tratamiento sistemático de técnicas fundamentales para el diseño y análisis de algoritmos eficientes J. Campos - C.P.S. Esquemas algorítmicos - Pág. 1 Computadores cada vez más
RECONOCIMIENTO DE PATRONES DRA. LETICIA FLORES PULIDO
RECONOCIMIENTO DE PATRONES DRA. LETICIA FLORES PULIDO 2 CONTENIDO TEMA1: INTRODUCCIÓN TEMA2: APRENDIZAJE MÁQUINA TEMA3: RECONOCIMIENTO DE PATRONES TEMA4: PROGRAMACIÓN EVOLUTIVA 3 TEMA 3 : RECONOCIMIENTO
GUÍA DOCENTE 1. DESCRIPCIÓN DE LA ASIGNATURA
1. DESCRIPCIÓN DE LA ASIGNATURA Grado: Ingeniería Informática en Sistemas de Información Doble Grado: Asignatura: Algorítmica 1 Módulo: M2: Programación de Computadores Departamento: Deporte e Informática
Ordenamiento 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
Planificaciones Teoría de Algoritmos I. Docente responsable: BARRIOS FEDERICO LUIS. 1 de 5
Planificaciones 7529 - Teoría de Algoritmos I Docente responsable: BARRIOS FEDERICO LUIS 1 de 5 OBJETIVOS Que el alumno - adquiera las herramientas teóricas y prácticas para la evaluación del costo temporal
EI 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
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)
ESCUELA SUPERIOR POLITÉCNICA DEL LITORAL FACULTAD DE INGENIERÍA EN ELECTRICIDAD Y COMPUTACIÓN SYLLABUS DEL CURSO Análisis de Algoritmos
1. CÓDIGO Y NÚMERO DE CRÉDITOS ESCUELA SUPERIOR POLITÉCNICA DEL LITORAL FACULTAD DE INGENIERÍA EN ELECTRICIDAD Y COMPUTACIÓN SYLLABUS DEL CURSO Análisis de Algoritmos CÓDIGO FIEC04366 NÚMERO DE CRÉDITOS:
Planificaciones Teoría de Algoritmos I. Docente responsable: WACHENCHAUZER ROSA GRACIELA. 1 de 5
Planificaciones 7529 - Teoría de Algoritmos I Docente responsable: WACHENCHAUZER ROSA GRACIELA 1 de 5 OBJETIVOS Que el alumno - adquiera las herramientas teóricas y prácticas para la evaluación del costo
UNIVERSIDAD NACIONAL AUTÓNOMA LICENCIADO EN CIENCIAS DE LA COMPUTACIÓN
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO LICENCIADO EN CIENCIAS DE LA COMPUTACIÓN Programa de la asignatura: Estructuras de Datos Clave: Semestre: Campo de conocimiento: Área de formación: * 2 Ciencias
UNIVERSIDAD 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
GUÍA DE APRENDIZAJE ESTRUCTURA DE DATOS
GUÍA DE APRENDIZAJE ESTRUCTURA DE DATOS Datos Descriptivos TITULACIÓN: CENTROS IMPLICADOS: GRADO EN INGENIERIA DEL SOFTWARE E.U. DE INFORMATICA CICLO: Grado sin atribuciones MÓDULO: MATERIA: PROGRAMACIÓN
Algoritmia para problemas difíciles
Algoritmia para problemas difíciles Elvira Mayordomo Universidad de Zaragoza 21 de septiembre de 2015 Elvira Mayordomo (Universidad de Zaragoza) Algoritmia para problemas difíciles 21 de septiembre de
Pontificia Universidad Católica del Ecuador
Pontificia Universidad Católica del Ecuador Facultad de Ingeniería, Escuela de Sistemas E-MAIL: dga@puce.edu.ec Av. 12 de Octubre 1076 y Roca Apartado postal 17-01-2184 Fax: 593 2 299 16 56 Telf: 593 2
CAPITULO 5 5. PROPUESTA DE UN CURSO DE COMPUTACION PARA LOS COLEGIOS FISCALES DE LA CUIDAD DE
CAPITULO 5 5. PROPUESTA DE UN CURSO DE COMPUTACION PARA LOS COLEGIOS FISCALES DE LA CUIDAD DE GUAYAQUIL 5.1 Introducción Este capítulo tratará de elaborar un documento que defina un enfoque práctico y
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
Algoritmos 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
Universidad de Valladolid. Departamento de informática. Campus de Segovia. Estructura de datos Tema 4: Ordenación. Prof. Montserrat Serrano Montero
Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 4: Ordenación Prof. Montserrat Serrano Montero ÍNDICE Conceptos básicos Elección de un método Métodos directos
Algoritmos de Ordenación
Algoritmos de Ordenación Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Algoritmos comunes - Ordenación Ordenación o clasificación es
Algoritmos y Complejidad
Algoritmos y Complejidad Curso 2017 Pablo R. Fillottrani Depto. Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Primer Cuatrimestre 2017 Resumen Objetivos Cronograma Cursado Recursos
UNIVERSIDAD CATÓLICA DEL NORTE PROGRAMA DE ESTUDIOS IDENTIFICACIÓN DE LA ASIGNATURA. Nombre: Estructuras de Datos y Archivos
1 UNIVERSIDAD CATÓLICA DEL NORTE PROGRAMA DE ESTUDIOS IDENTIFICACIÓN DE LA ASIGNATURA Nombre: Estructuras de Datos y Archivos Código: CC- 672 Fecha Actualización: 30/07/2008 Unidad Responsable: Departamento
Francisco 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
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
CLASES DE COMPUTADORAS
CLASES DE COMPUTADORAS Las computadoras se clasifican según su velocidad de procesamiento de datos, la cantidad de datos que puede almacenar y el precio. Debido a la rápida mejora de la tecnología, es
Este método se basa en buscar el elemento menor el vector y colocarlo en la primera
Lectura ORDENACIÓN DE ARREGLOS Con frecuencia se requiere clasificar u ordenar los elementos de un vector (arreglo unidimensional) en algún orden en particular. Por ejemplo, ordenar un conjunto de números
PROGRAMACIÓ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
Computación 1. Programación, Constantes, Variables y Condiciones
Computación 1 Programación, Constantes, Variables y Condiciones Contenido Codificar Construcción de programas Objetivos de la programación Diagrama de flujos Datos Constantes Variables Condiciones Codificar
Juego Jarras con Agua Guía del Usuario
Juego Jarras con Agua Guía del Usuario Stacking Vessel -2011- Wüstenberg, Pia. Extraído desde: http://www.piadesign.eu/piadesign.eu/stacking_vessel_sun.html El nuevo juego "Jaras con Agua" expande sus
Tema: Métodos de Ordenamiento. Parte 1.
Programación IV. Guía 2. 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación IV Tema: Métodos de Ordenamiento. Parte 1. Objetivos Específicos Identificar la estructura de algunos algoritmos
Conceptos básicos de bases de datos
Conceptos básicos de bases de datos 1.1 Definición de base de datos Una base de datos es una colección de archivos relacionados que permite el manejo de la información de alguna compañía. Cada uno de dichos
TEMA 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
Guía práctica de estudio 3
Guía práctica de estudio 3 Algoritmos de ordenamiento parte 3 Elaborado por: Revisión: Ing. Laura Sandoval Montaño Facultad de Ingeniería U.N.A.M. Guía práctica de estudio 3 Estructura de datos y Algoritmos
02/02/2012. El objetivo de este tema es dar unas nociones básicas del fichero electrónico.
El objetivo de este tema es dar unas nociones básicas del fichero electrónico. 1 2 La idea central es que la "forma" del archivo la determina el estado tecnológico del momento. A partir de ahora hablaremos
Generadores pseudoaleatorios
Generadores pseudoaleatorios Elvira Mayordomo Universidad de Zaragoza 13 de noviembre de 2017 Elvira Mayordomo (Universidad de Zaragoza) Generadores pseudoaleatorios 13 de noviembre de 2017 1 / 28 Contenido
Diseño estructurado de algoritmos. Sesión 1: Conceptos de algoritmos
Diseño estructurado de algoritmos Sesión 1: Conceptos de algoritmos conceptos de algoritmos Tienes idea de por qué el tema de los algoritmos es tan importante para todos? Debes saber que los algoritmos
ESTIMACIÓN DE TIEMPO Y COSTO DE PRODUCTOS SOFTWARE
Análisis y costo de algoritmos Algoritmos Un algoritmo es un conjunto de pasos claramente definidos que a partir de un cierta entrada (input) produce una determinada salida (output) Algoritmos y programas
GUÍA DE APRENDIZAJE Fundamentos de Programación GRADUADO EN INGENIERÍA DE COMPUTADORES
DATOS DESCRIPTIVOS GUÍA DE APRENDIZAJE Fundamentos de Programación GRADUADO EN INGENIERÍA DE COMPUTADORES CENTRO RESPONSABLE E.T.S. de Ingeniería de Sistemas Informáticos OTROS CENTROS IMPLICADOS CICLO
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
TEMA 1: DIVIDE Y VENCERÁS
TEMA 1: DIVIDE Y VENCERÁS l OBJETIVOS: n Estudio de la estrategia de diseño de algoritmos (recursivos) Divide y Vencerás n Estudio de los algoritmos de Ordenación Rápida: MergeSort y QuickSort n Estudio
Introducción a la Computación. Primer Cuatrimestre de 2017
Introducción a la Computación Primer Cuatrimestre de 2017 Introducción a la Computación Docentes: Nicolás D Ippolito (Profesor) Hernán Czemerinski (JTP) Facundo Carrillo (Ayudante de 1era) Emiliano Hoss
UNIVERSIDAD NACIONAL HERMILIO VALDIZAN DIRECCION DE EDUCACION A DISTANCIA Y VIRTUAL CENTRO DE ESTUDIOS INFORMATICOS HUANUCO PERU
5. FUNCIONAMIENTO DE UN ORDENADOR 5.1. COMO FUNCIONA MI ORDENADOR? Una computadora básicamente es un dispositivo cuya principal función es la de procesar grandes cantidades de información en forma veloz
Fundamentos de Programación. Índice. Fundamentos de programación. Qué es programación? El lenguaje Java. La asignatura
Tema 1: Presentación Fundamentos de Programación La asignatura El lenguaje Java Temario Evaluación Bibliografía Profesores Conceptos básicos de informática Índice Dpto. de Ingeniería de Sistemas Telemáticos
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
OBJETIVOS ÍNDICE BIBLIOGRAFÍA
OBJETIVOS Tema 9: GRAFOS Primera Parte Estructuras de Datos y Algoritmos Curso 2002/03 Definiciones formales de grafo y conceptos relacionados Estructuras de datos para representar grafos Algoritmos para
EVALUACIÓN DE MÉTODOS DE ORDENACIÓN: QuickSort vs. QuickSort con pseudomediana
EVALUACIÓN DE MÉTODOS DE ORDENACIÓN: QuickSort vs. QuickSort con pseudomediana Enero 1998 Pedro Pablo Gómez Martín Marco Antonio Gómez Martín GENERALIDADES El programa MEDICION, que se ejecuta con MEDICION,
Estructuras de Datos y Algoritmos. Curso 2009/2010. Tema 3: Divide y Vencerás
Estructuras de Datos y Algoritmos Facultad de Informática Universidad Politécnica de Valencia Curso 2009/2010 Tema 3: Divide y Vencerás FI UPV: Curso 2009/2010 TEMA 3. Divide y Vencerás Objetivos Estudio
FUNDAMENTOS DE INFORMÁTICA PARA INGENIERÍA INDUSTRIAL
FUNDAMENTOS DE INFORMÁTICA PARA INGENIERÍA INDUSTRIAL Miguel A. Rodríguez Jódar Daniel Cascado Caballero Saturnino Vicente Díaz Claudio A. Amaya Rodríguez Fernando Díaz del Río José Luis Sevillano Ramos
UNIVERSIDAD AUTÓNOMA DE YUCATÁN FACULTAD DE MATEMÁTICAS MISIÓN
UNIVERSIDAD AUTÓNOMA DE YUCATÁN FACULTAD DE MATEMÁTICAS MISIÓN Formar profesionales altamente capacitados, desarrollar investigación y realizar actividades de extensión en Matemáticas y Computación, así
Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo
TEMA 2: CONCEPTOS BÁSICOS DE ALGORÍTMICA 1. Definición de Algoritmo 1.1. Propiedades de los Algoritmos 2. Qué es un Programa? 2.1. Cómo se construye un Programa 3. Definición y uso de herramientas para
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
FOPR-I1O23 - Fundamentos de Programación
Unidad responsable: 340 - EPSEVG - Escuela Politécnica Superior de Ingeniería de Vilanova i la Geltrú Unidad que imparte: 723 - CS - Departamento de Ciencias de la Computación Curso: Titulación: 2018 GRADO
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
Tema: 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
Programación Análisis de Algoritmos: Tiempo de Ejecución (Introducción)
Programación 2 5 - Análisis de Algoritmos: Tiempo de Ejecución (Introducción) 1 Análisis de Algoritmos: Introducción Qué algoritmos elegir para resolver un problema? Que sean fáciles de entender, codificar
Algoritmos de búsqueda básicos
Algoritmos de búsqueda básicos por Iván Cruz Cuando se necesita encontrar un valor dentro de un conjunto de datos almacenados en un arreglo, surgen diversos algoritmos para lograrlo de la manera más eficiente
Introducción a la Computación (para Matemática) Primer Cuatrimestre de 2016
Introducción a la Computación (para Matemática) Primer Cuatrimestre de 2016 Introducción a la Computación (para Matemática) Primer Cuatrimestre de 2016 Docentes: Clase de hoy: Agustín Gravano (Profesor)
INTRODUCCIÓN A LA INFORMÁTICA
1. DEFINICIONES BÁSICAS. INTRODUCCIÓN A LA INFORMÁTICA El término Informática proviene de la unión de las palabras información y automática. De una forma muy general podemos decir que la informática se
Mé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
Arquitectura de Computadores (Grado II)
Arquitectura de Computadores (Grado II) Práctica de Memorias caché Departamento de Arquitectura y Tecnología de Sistemas Informáticos Escuela Técnica Superior de Ingenieros Informáticos Universidad Politécnica
Computadora y Sistema Operativo
Computadora y Sistema Operativo Según la RAE (Real Academia de la lengua española), una computadora es una máquina electrónica, analógica o digital, dotada de una memoria de gran capacidad y de métodos
Análisis de Algoritmos
Análisis de Algoritmos Amalia Duch Barcelona, marzo de 2007 Índice 1. Costes en tiempo y en espacio 1 2. Coste en los casos mejor, promedio y peor 3 3. Notación asintótica 4 4. Coste de los algoritmos
Ejemplo, generación de #s aleatorios
Ejemplo, generación de #s aleatorios Supón que tienes un generador de números aleatorios enteros [0,2] con distribución uniforme, y tu necesitas generar números con distribución uniforme [0,4]. Alguien
Guia de Estudio: Introducción al Procesamiento de Datos (32091) Unidad I: Aspectos Básicos del Procesamiento de Datos
Guia de Estudio: Introducción al Procesamiento de Datos (32091) Unidad I: Aspectos Básicos del Procesamiento de Datos QUE ES EL PROCESAMIENTO DE DATOS? Es la Técnica que consiste en la recolección de los
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
Tecnología de la Programación GUÍA DOCENTE Curso
Tecnología de la Programación GUÍA DOCENTE Curso 2009-2010 Titulación: Grado en Ingeniería Informática 801G Asignatura: Tecnología de la Programación 801107008 Materia: Módulo: M2 Contenidos instrumentales
Ejercicio de algoritmia resuelto con Visual Basic: ordenar series de series de números. (CU00356A)
aprenderaprogramar.com Ejercicio de algoritmia resuelto con Visual Basic: ordenar series de series de números. (CU00356A) Sección: Cursos Categoría: Curso Visual Basic Nivel I Fecha revisión: 2029 Autor:
3.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
INGENIERÍA EN COMPUTACIÓN. INGENIERÍA EN COMPUTACIÓN División Departamento Licenciatura
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA PROGRAMA DE ESTUDIO FUNDAMENTOS DE PROGRAMACIÓN INGENIERÍA ELÉCTRICA 1 10 Asignatura Clave Semestre Créditos INGENIERÍA EN COMPUTACIÓN INGENIERÍA