Universidad Autónoma del Estado de México

Slides:



Advertisements
Presentaciones similares
Ordenación, Clasificación
Advertisements

Universidad Domingo Savio Facultad de Ciencias y Tecnología de la Información Carrera Ingeniería en Redes y Telecomunicaciones Materia : Programación I.
Ingeniería Ambiental / Tecnología en Saneamiento Ambiental Ambiente Virtual de Aprendizaje AVA (3 créditos académicos) BIOLOGÍA AMBIENTAL Código.
PROGRAMACIÓN I CENTRO DE ESTUDIOS INTEGRADOS EL MARISCAL - CEIM Ing. Luisa Fernanda Arenas Castañeda Feb 6 de 2016.
FI-GQ-GCMU V Presentación del curso Tele tráfico (2 créditos) Escuela de Ciencias Básicas Tecnología e Ingeniería, ECBTI.
MODELO ADDIE Módulo 2. 1.Fundamentos teóricos ADDIE Análisis Diseño Desarrollo Implementación Evaluación Prototipación rápida 2.Actividad de clase.
TALLERES FUENTES DE INFORMACIÓN Guía para la revisión y mejora de los talleres.
1 Ordenación, Clasificación Introducción Algoritmos Complejidad.
ESTRATEGIA A IMPLEMENTAR Lograr el 90% de aprobación
Universidad autónoma del estado de México
CURSO-TALLER: INTRODUCCIÓN A LA ARITMÉTICA
TERMINOLOGÍA BÁSICA Informática: conjunto de conocimientos científicos y técnicas que hacen posible el tratamiento automático y racional de la información,
OTRAS MODALIDADES DE APRENDIZAJE PARA OBTENCIÓN DE CRÉDITOS
Clementina García Martínez José Manuel Valencia Moreno
Módulo II Diseño Educativo con base en Objetos de Aprendizaje
Universidad Autónoma del Estado de México
Ingeniería en Sistemas
INTRODUCCION A LA TEORIA DE DECISIONES JUAN ANTONIO DEL VALLE F.
El celular en los parciales SI o NO
Propósito Contribuir a la formación de los académicos que participarán en las asignaturas del 1er periodo escolar de los planes de estudio de licenciatura.
Unidad 3- Desarrollo de la acción tutorial en línea.
Estructuras de Datos Recursividad.
Arreglos. en Lenguaje C n
Inducción Prácticas Pre-Profesionales
Tema 8 Elaboración de presentaciones
CLASIFICACION DE SOFWARE EDUCATIVO
Nombre T.A. Mtra. Dulce María Espinosa Rivera
Trabajo Final Programación Estructurada METODOS DE ORDENACIÓN
GRADO 3º COMPARATIVO POR AÑO 2012 – 2013 LENGUAJE GRADO 3º
Asignatura: Programación 1
Programación I MC Beatriz Beltrán Martínez
UNIVERSIDAD NACIONAL DE INGENIERÍA
Mg. Juan A. Manyari De La Cruz
Ingeniería en Sistemas computacionales Fundamentos de programación
Presentación de la asignatura Psicología Organizacional
Facilitador: Salvador López Vargas
Lic. Verónica Morales Burguete
Especialización en Educación de la Primera Infancia
LENGUAJES DE PROGRAMACIÓN I
Programación de exámenes Requisitos para exentar
Especialista en Docencia de Fisiología.
TRABAJO ESPECAL DE GRADO
Estructuras de datos y Bases de datos
Síndrome de Down y escuela Lo normal es ser diferentes
Optimización de Procesos.
Lenguaje de Programación Estructurada
Curso de Programación Estructurada
Fundamentos de Informática Especialidad de Electrónica –
Curso de Programación Estructurada
Ordenamiento: Quick Sort
LECTURA LITERAL FACULTAD DE CIENCIAS AGRICOLAS
MC Beatriz Beltrán Martínez Verano 2018
Equipo 8 Instituto Juventud del Estado de México A.C.
Ingeniería en Computación M. en C. J. Jesús Arellano Pimentel
Informática Ingeniería en Electrónica y Automática Industrial
Números Complejos UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO
Estadística Asignatura obligatoria 5 créditos CBU 2015 Sexto semestre Módulo II. Medidas de tendencia central y de posición Universidad Autónoma del.
METODOS DE ORDENAMIENTO
Introducción a la Ingeniería en Telecomunicaciones
IWI -131 Programación de computadores
PREPARATORIA ATENIENSE, A. C. EQUIPO NO
Secretaría de Desarrollo Institucional
Ingeniería en Computación M. en C. J. Jesús Arellano Pimentel
Departamento de Ingeniería de Sistemas e Industrial
Equipo 1: ¿Migrar o no migrar?
Nombre Fecha Weblog Imagen Titulo: ………… TITULO redactado como frase imaginativa y sintética que consigna el aprendizaje religioso o filosófico buscado.
Canvas de diseño Challenge Based Learning
UNIVERSIDAD AUTÓNOMA DE SINALOA FACULTAD DE INFORMÁTICA CULIACÁN
Ordenación Por Inserción
UNIVERSIDAD AÚTONOMA DE SINALOA “Facultad de Informática Culiacán”
Transcripción de la presentación:

Universidad Autónoma del Estado de México Centro Universitario UAEM Valle de Teotihuacán FICHA DE DATOS Créditos Institucionales: Fecha 13/octubre/2017 6 créditos. Titulo de la guía para la Unidad de Aprendizaje: “Algoritmos de Ordenamiento”. Nombre del programa educativo: Licenciatura en Informática Administrativa Unidad de Aprendizaje: Estructura de Datos Espacio Académico : Centro Universitario UAEM Valle de Teotihuacán. Nombre del Responsable: M. en S.C. Jaqueline Sánchez Espinoza

Objetivos Identificar la estructura de los algoritmos de ordenamiento a través de interpretar el algoritmo aplicando el ordenamiento adecuado.

Justificación Los problemas de ordenación y búsqueda son de gran importancia para la ciencia de la computación en general y la algoritmia en particular, empleando una gran parte de su tiempo de computación en estas operaciones , representando problemas cuya descripción puede resultar fácil para el diseño y la implementación de algoritmos eficientes que los resuelven.

Guión Explicativo Utilizar como apoyo académico De la diapositiva 1 a la 18 se muestra la identificación Presentación general Propósitos Competencias genéricas Estructura, secuencia didáctica Evaluación y acreditación de la unidad de aprendizaje de estructura de datos La diapositiva 19 en adelante se muestra el material que contempla la Unidad de competencia III.

Prerrequisitos (Conocimientos Previos) Concepto de algoritmo Lenguajes de programación tipos de datos primitivos constantes y variables operaciones de asignación estructura general de un programa programación estructurada procedimientos y funciones manejo de lenguaje de programación

Identificación de la Unidad de Aprendizaje Unidad de Aprendizaje Antecedente Programación estructurada Unidad de Aprendizaje Consecuente Programación Orientada a Objetos Unidad de Aprendizaje Consecuente   Programación Orientada a Objetos

Presentación El estudio de las estructuras de datos se hará desde diversos puntos de vista: diseño de estructuras en respuesta a necesidades especificas, encapsulamiento de tipos de datos usándolos en base a su especificación (propiedad funcionales) y no a su implementación y estudio de los principales tipos, tanto elementales como no elementales, dividiendo estos últimos en estructuras lineales (listas, pilas, colas…) y no lineales (arboles, grafos,…), analizándolos primero desde el punto de vista teórico pero sin perder de vista sus aplicaciones practicas.

Propósito Evaluar las diferentes estructuras dinámicas para la representación y manipulación de información en la computadora, a través de los diferentes tipos de datos.

Competencias Genéricas Diseñar, automatizar, mejorar e implementar programas con las estructuras apropiadas que coadyuven al desarrollo de software.

Estructura de la Unidad de Aprendizaje UNIDAD I Programación estructurada, modularización y variables dinámicas. UNIDAD II Archivos y memoria dinámica UNIDAD III Algoritmos básicos de ordenación y búsqueda. UNIDAD IV Estructuras de datos lineales. UNIDAD V Estructuras de datos no lineales. UNIDAD VI Complejidad Computacional.

UNIDAD I Programación Estructurada Secuencia Didáctica 1.1 Conceptos.   1.2 Programación Estructurada y Algoritmos.  1.3 Modularización.  1.4 Variables Dinámicas: Apuntadores Operaciones.  1.5 Arreglos unidimensionales y bidimensionales. UNIDAD I Programación Estructurada

UNIDAD II Archivos y memoria dinámica Secuencia Didáctica 2.1 Control de archivo (abrir, cerrar, actualizar en los distintos modos de lectura y/o escritura). 2.2 Uso de archivos temporales. 2.3 Reservado y liberación de espacio. UNIDAD II Archivos y memoria dinámica

UNIDAD III Algoritmos básicos de ordenación y búsqueda Secuencia Didáctica 3.1 Algoritmos de Burbuja. 3.2 QuickSort. 3.3 Shell. 3.4 Shell Mejorado. 3.5 Búsqueda Binaria. UNIDAD III Algoritmos básicos de ordenación y búsqueda

UNIDAD IV Estructuras de datos no lineales Secuencia Didáctica 4.1 Pilas 4.2 Colas 4.3 Listas UNIDAD IV Estructuras de datos no lineales

UNIDAD V Estructuras de datos no lineales. Secuencia Didáctica 5.1 Grafos 5.2 Árboles 5.3 Árboles Binarios UNIDAD V Estructuras de datos no lineales.

UNIDAD VI Complejidad Computacional Secuencia Didáctica 6.1 Conceptos Básicos 6.2 Problemas O 6.3 Problemas P-NP 6.4 Ejemplos UNIDAD VI Complejidad Computacional

Evaluación y Acreditación ESCALA DE EVALUACIÓN EN PARCIALES 30% Ejercicios prácticos. 30% Evaluación continua. 40% Evaluación parcial ESCALA DE EVALUACIÓN ORDINARIA 50% Entrega de proyecto final. 50% Evaluación ordinaria. EXENTAR El alumno exenta con 9.0 en promedio de los dos parciales. REQUISITOS PARA PRESENTAR EVALUACIÓN ORDINARIA Tener 80% de asistencias en los dos parciales. Un promedio no menor a 6.0 en evaluaciones parciales.

Contenido Introducción. Algoritmo Burbuja. 1 Introducción. 2 Algoritmo Burbuja. 3 Algoritmo sacudida (shakesort). 4 Algoritmo inserción. 5 Algoritmo selección. 6 Algoritmo (Quicksort). 7 Idea de Quick Sort. 8

Introducción Ordenación o clasificación es el proceso de reordenar un conjunto de objetos en un orden específico. El propósito de la ordenación es facilitar la búsqueda de elementos en el conjunto ordenado.

Introducción Métodos de Ordenamiento Ordenación de ficheros. Ordenación de arrays.

Introducción El problema del ordenamiento puede establecerse mediante la siguiente acción: Dados los elementos: Ordenar consiste en permutar esos elementos en un orden: tal que dada una función de ordenamiento f:

Introducción En lo que sigue se considera que la estructura lineal (array, lista, vector o secuencia) a ordenar se representa por un array de objetos (números enteros): int a[ ] = new int[MAX]; Siendo MAX el número máximo de elementos del array. El orden de los elementos después de la ordenación se considera ascendente.

Algoritmo burbuja Comparación e intercambio de pares de elementos hasta que todos los elementos estén ordenados. En cada iteración se coloca el elemento más pequeño (orden ascendente) en su lugar correcto, cambiándose además la posición de los demás elementos del array.

Algoritmo burbuja

Algoritmo burbuja

Algoritmo burbuja

Algoritmo burbuja

Algoritmo burbuja

Algoritmo burbuja for(i=n;i>0;i--) for(j=0;j<i-1;j++) if (a[j] > a[j+1]) { t=a[j]; a[j] = a[j+1]; a[j+1]=t; ninterc++; }

Algoritmo sacudida (shakesort) Es una mejora del algoritmo de burbuja en el que se registra la ocurrencia de un intercambio y el índice del último intercambio y se alterna la dirección de las pasadas consecutivas.

Algoritmo sacudida (shakesort) l=k+1; for(j=l; j<=r; j++) if (a[j-1]>a[j]) { t=a[j-1]; a[j-1] = a[j]; a[j]=t; k=j; ninterc++; } r=k-1; while (l<r); l=1; r=n-1; k=n-1; do { for(j=r; j>=l; j--) if (a[j-1]>a[j]) t=a[j-1]; a[j-1] = a[j]; a[j]=t; k=j; ninterc++; }

Algoritmo inserción Los elementos están divididos en una secuencia destino y una secuencia fuente En cada paso, comenzando con i=2 e incrementando i en uno, el elemento i-ésimo de la secuencia fuente se toma y se transfiere a la secuencia destino insertándolo en el lugar adecuado

Algoritmo inserción

Algoritmo inserción

Algoritmo inserción

Algoritmo inserción

Algoritmo inserción

Algoritmo inserción

Algoritmo inserción

Algoritmo inserción

Algoritmo inserción for(i=1;i<n;i++) { j=i-1; t=a[i]; while (j>=0 && t<a[j]) a[j+1] = a[j]; j=j-1; } a[j+1]=t;

Algoritmo selección En éste método, en el i-ésimo paso seleccionamos el elemento con la llave de menor valor, entre a[i],…, a[n] y lo intercambiamos con a[i]. Como resultado, después de i pasadas, el i-ésimo elemento menor ocupará a[1],…, a[i] en el lugar ordenado.

Algoritmo selección

Algoritmo selección

Algoritmo selección

Algoritmo selección

Algoritmo selección

Algoritmo selección

Algoritmo selección

Algoritmo selección

Algoritmo selección for(i=0;i<n-1;i++) { k=i; t=a[i]; for (j=i+1; j<n; j++) if (a[j] < t) t= a[j]; k=j; } a[k]= a[i]; a[i]= t;

Algoritmo (Quicksort) Seleccionar un valor de división (L por ejemplo) y dividir el montón en dos pilas, A-L y M-Z. Después se toma la primera pila y se subdivide en dos, A-F y G-L por ejemplo. A su vez la pila A-F puede subdividirse en A-C y D-F. Este proceso continúa hasta que las pilas sean suficientemente pequeñas para ordenarlas fácilmente. El mismo proceso se aplica a la otra pila.

Idea de Quick Sort 1) Selección: tomar un elemento. 2) Dividir: reordenar los elementos tal que x va a su posición final E. 3) Recursión y vencer: ordenar recursivamente.

Algoritmo (Quicksort) void qsort(int izq, int der, int a[]) { int i, ult, m, tmp; if (izq >= der) return; tmp= a[izq]; m= (izq+der)/2; a[izq]= a[m]; a[m]=tmp; ult=izq; for (i=izq+1;i<=der;i++) if (a[i] < a[izq]) { tmp= a[++ult]; a[ult]= a[i]; a[i]=tmp; } tmp= a[izq]; a[izq]= a[ult]; a[ult]=tmp; qsort(izq,ult-1,a); qsort(ult+1,der,a);

Bibliografía Franch G. (2001) Estructuras de Datos. Especificación, Diseño e Implementación. México: Editorial UPC. Martí O. (2003) Estructura de datos y algoritmos. Ejercicios y problemas resueltos. Caracas: Editorial Pearson Prentice Hall. Cairó O. (2006) Estructura de Datos. México: Editorial Mc Graw Hill. Hernández, R. Estructura de Datos y Algoritmos. México: Editorial Prentice Hall.