MÉTODOS DE CLASIFICACION

Slides:



Advertisements
Presentaciones similares
El tamaño asignado para cada partición es el mismo. Cada partición, será ocupada por un proceso de menor o igual tamaño. El programador debe diseñar el.
Advertisements

Unidad 6 Métodos de Ordenamiento Internos
Método de ordenación por inserción
ESTRUCTURA DE DATOS Unidad 05 ALGORITMOS DE BUSQUEDA.
IBD Clase 7.
Ordenamiento de Arreglos
Complejidad de Algoritmos
EQUIPO ·# 3 SISTEMAS OPERATIVOS
ALGORITMOS DE ORDENAMIENTO
Ordenamiento Interno y Búsqueda Binaria
Diseño y análisis de algoritmos
Paricial IV Ing. Esmeralda Elizabeth Rodríguez Rodríguez
Estructuras de Datos (ARRAYS)
ORDENACION POR EL METODO DE LA SACUDIDA (SHAKER SORT)
LAS TOPOLOGÍAS DE REDES
Programación (Estructura de Datos)
PROGRAMACION DE ESTRUCTURAS DE DATOS
PROGRAMACION DE ESTRUCTURAS DE DATOS IV. MÉTODOS DE ORDENAMIENTO.
UNIVERSIDAD LATINA (UNILA) II.- ANALISIS DE ALGORITMOS
UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
III. DISEÑO DE ALGORITMOS PARA LA SOLUCIÓN DE PROBLEMAS.
IBD Plan 2003 Clase 4. UNLP - Facultad de InformáticaIBD - CLASE 4 2 Archivos - Búsqueda Búsqueda de información (costo) # de comparaciones (operaciones.
Windows XP sp3.
METODO DE ORDENAMIENTO POR SELECCIÓN.
Ordenación, Clasificación
Unidad II Aplicaciones con Arreglos en Java y C++
UNIVERSIDAD ALAS PERUANAS FACULTAD DE INGENIERIAS Y ARQUITECTURA FACULTAD DE INGENIERIAS Y ARQUITECTURA ESCUELA PROFESIONAL DE INGENIERIAS DE SISTEMAS.
M.C. Yalu Galicia Hdez. (FCC/BUAP)
Algoritmos para Ordenar datos
Tema 8b Búsqueda y ordenación en arreglos. Ordenación Es un proceso que altera el orden de los elementos de un conjunto. Tiene asociada una relación de.
Ordenación y Búsquedas1UVM Ordenación y Búsqueda.
Objetivo: Facilitar la búsqueda de los elementos del conjunto ordenado
Universidad Domingo Savio Facultad de Ciencias y Tecnología de la Información Carrera Ingeniería en Redes y Telecomunicaciones Materia : Programación I.
Estructuras de Datos Arreglos.
COMPUTACION 2009 Clase 6 Clase 7.
Métodos de búsqueda Unidad 6.
Tecnología de la información Unidad: 3 El software Profesor: Fernando J. Martini.
Estructura de Datos II Equipo 4 Equipo 7 Acosta Montiel Miguel A.
(Organización y Manejo de Archivos)
Ingeniería en Sistemas Computacionales Estructura de Datos
Búsqueda y ordenación Programación II 7-8 de enero de 2009.
Ing. En sistemas computacionales Estructuras de datos Tema: método de ordenamiento burbuja.
Aplicación de estructuras de datos
Ordenación y Búsqueda.
Arreglos Programación I MC Beatriz Beltrán Martínez.
Operaciones con números complejos
Algoritmos de Ordenamiento y Complejidad
Quick Sort Estructura de Datos: Métodos de ordenamiento. José Alejandro Leal González Verito no m c tu nombre completo jejeje aquí va!!!
Administrador de procesos
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) III. DISEÑO DE ALGORITMOS PARA LA SOLUCIÓN DE PROBLEMAS.
Fundamentos de Programación
Ordenamiento en lenguaje c
METODOS DE BUSQUEDA EN C++ Oscar Michel Ruiz León
Computación I. CI-2125 Tema VII
Algoritmos y Desarrollo de Programas I
ORDENAMIENTO DE DATOS Jorge Méndez Sánchez Eliúh Cuecuecha Hernández
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Caso.

UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO MODULO IV ADMINISTRACIÓN DE BASES DE DATOS Respaldo y recuperacion de la Base de Datos E.I. L.E. Prof. Ramón Castro.
ARRAYS Y COLECCIONES DE DATOS. ARRAYS Arrays – Matriz – Vector Elemento del lenguaje que nos permite agrupar un conjunto de valores del mismo tipo, y.
EI, Profesor Ramón Castro Liceaga IV. AREAS DE EVALUACIÓN DE LA AUDITORIA EN INFORMÁTICA. UNIVERSIDAD LATINA (UNILA)
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) V. GESTIÓN DE TIPOS Y GENERACIÓN DE CÓDIGOS.
ESTRUCTURAS DE DATOS “Conceptualización de estructuras de datos” Por: Eduardo Robayo.
EI, Profesor Ramón Castro Liceaga Redes III LAS TOPOLOGÍAS DE REDES Costo Beneficio.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO FACULTAD DE INGENIERÍA COORDINACIÓN DE MATERIAS PROPEDÉUTICAS INGENIERÍA EN SISTEMAS ENERGÉTICOS SUSTENTABLES.
Ingeniería en Sistemas
Ordenación externa: Partición de archivos, Ordenación por mezcla directa y Ordenación por mezcla natural LINNY ROSMERY ABREU VARGAS.
METODOS DE ORDENAMIENTO CHRISTIAN MICHAEL OBANDO GARCES JOAO ADRIAN BARIONUEVO.
ALGORITMO DE ORDENAMIENTO POR BURBUJA. El método de la burbuja es uno de los mas simples, es tan fácil como comparar todos los elementos de una lista.
Transcripción de la presentación:

MÉTODOS DE CLASIFICACION DE DATOS (sort) EI, Profesor Ramón Castro Liceaga

(mayor -> menor o menor -> mayor) QUE SON ORDENAMIENTOS DE DATOS ? SORT / ORDENACION.- Es reagrupar un grupo de datos en una secuencia especifica de orden (mayor -> menor o menor -> mayor) EI, Profesor Ramón Castro Liceaga

EI, Profesor Ramón Castro Liceaga LA ORDENACION DE ELEMENTOS PUEDE SER: Ordenación Interna.- En memoria principal (arrays, listas). Ordenación Externa.- En memoria secundaria. (dispositivos de almacenamiento externo.- archivos y Bases de datos). EI, Profesor Ramón Castro Liceaga

EI, Profesor Ramón Castro Liceaga TIPOS DE ORDENACION Los mas usuales son: POR INTERCAMBIO (Compara e intercambia elementos.- Burbuja) POR SELECCIÓN (Selecciona el mas pequeño y lo intercambia) POR INSERSION (Inserta los elementos en una sublista ordenada) METODO SHELL (Es una insersión mejorada) ORDENACION RAPIDA (Quick Sort.- divide una lista en dos partes) EI, Profesor Ramón Castro Liceaga

EI, Profesor Ramón Castro Liceaga ALGORITMO DE EJEMPLO DE UN ORDENAMIENTO PROBLEMA: En una Empresa el área de Recursos Humanos requiere ordenar 3 números de empleados obteniendo la siguiente salida. EI, Profesor Ramón Castro Liceaga

EI, Profesor Ramón Castro Liceaga POR INTERCAMBIO (Burbuja o bubble sort ) El bubble sort, también conocido como ordenamiento burbuja, funciona de la siguiente manera: Se va comparando cada elemento del arreglo con el siguiente; si un elemento es mayor que el que le sigue, entonces se intercambian; esto producirá que en el arreglo quede como su último elemento, el más grande. Este proceso deberá repetirse recorriendo todo el arreglo hasta que no ocurra ningún intercambio. Los elementos que van quedando ordenados ya no se comparan. "Baja el más pesado". EI, Profesor Ramón Castro Liceaga

EI, Profesor Ramón Castro Liceaga EJEMPLO: Ordenamiento por Burbuja o bubble sort Consiste en comparar pares de elementos adyacentes e intercambiarlos entre sí hasta que estén todos ordenados. Sea un array de 6 números de empleados: {40,21,4,9,10,35}: Primera pasada: {21,40,4,9,10,35} <-- Se cambia el 21 por el 40. {21,4,40,9,10,35} <-- Se cambia el 40 por el 4. {21,4,9,40,10,35} <-- Se cambia el 9 por el 40. {21,4,9,10,40,35} <-- Se cambia el 40 por el 10. {21,4,9,10,35,40} <-- Se cambia el 35 por el 40. Segunda pasada: {4,21,9,10,35,40} <-- Se cambia el 21 por el 4. {4,9,21,10,35,40} <-- Se cambia el 9 por el 21. {4,9,10,21,35,40} <-- Se cambia el 21 por el 10. Ya están ordenados, pero para comprobarlo habría que acabar esta segunda comprobación y hacer una tercera. EI, Profesor Ramón Castro Liceaga

EI, Profesor Ramón Castro Liceaga // Definimos una función donde A=arreglo y N=tamaño int bubblesort(int A[],int N){ int i,j,AUX; for(i=2;i<=N;i++){ //avanza for(j=N;j>=i;j--){ //retrocede if(A[j-1]>A[j]){ //si a > p intercambio AUX=A[j-1]; A[j-1]=A[j]; A[j]=AUX; } return 1; EI, Profesor Ramón Castro Liceaga

EI, Profesor Ramón Castro Liceaga Práctica No. 03 Hacer un programa que ordene por el método de la burbuja Bubblesort en forma ascendente un vector de 10 números de empleados de una empresa. Algoritmo: 1.- Llenar el vector con los 10 números de los empleados 2.- Mostrar los números a ordenar 3.- Ordenar el vector por el método bubblesort 4.- Mostrar el vector ordenado en forma ascendente Actividades adicionales: a) hacer un ordenamiento descendete para 30 empleados. b) Hacer un ordenamiento ascendente para 20 nombres de empleados con 15 caracteres c/u Tiempo aprox. 15 mts. EI, Profesor Ramón Castro Liceaga

EI, Profesor Ramón Castro Liceaga POR SELECCION Este algoritmo trabaja seleccionando el dato más pequeño a ser ordenado que aún esta en la lista, y luego haciendo un intercambio con el elemento en la siguiente posición. ejemplo, si tenemos el array {40,21,4,9,10,35}, los pasos a seguir son : {4,21,40,9,10,35} <-- Se coloca el 4, el más pequeño, en primera posición : se cambia el 4 por el 40. {4,9,40,21,10,35} <-- Se coloca el 9, en segunda posición: se cambia el 9 por el 21. {4,9,10,21,40,35} <-- Se coloca el 10, en tercera posición: se cambia el 10 por el 40. {4,9,10,21,40,35} <-- Se coloca el 21, en tercera posición: ya está colocado. {4,9,10,21,35,40} <-- Se coloca el 35, en tercera posición: se cambia el 35 por el 40. EI, Profesor Ramón Castro Liceaga

EI, Profesor Ramón Castro Liceaga Código fuente por selección. void selectionSort(int numbers[], int array_size) { int i, j; int min, temp; for (i = 0; i < array_size-1; i++){ min = i; for (j = i+1; j < array_size; j++){ if (numbers[j] < numbers[min]){ min = j; temp = numbers[i]; numbers[i] = numbers[min]; numbers[min] = temp; } EI, Profesor Ramón Castro Liceaga

EI, Profesor Ramón Castro Liceaga POR INSERSION El insertion sort trabaja insertando el numero en su lugar correspondiente al final de una sublista ordenada. En este método lo que se hace es tener una sublista ordenada de elementos del array e ir insertando el resto en el lugar adecuado para que la sublista no pierda el orden. La sublista ordenada se va haciendo cada vez mayor, de modo que al final la lista entera queda ordenada. Para el ejemplo {40,21,4,9,10,35}, se tiene: {40,21,4,9,10,35} <-- La primera sublista ordenada es {40}. Insertamos el 21: {40,40,4,9,10,35} <-- aux=21; {21,40,4,9,10,35} <-- Ahora la sublista ordenada es {21,40}. Insertamos el 4: {21,40,40,9,10,35} <-- aux=4; EI, Profesor Ramón Castro Liceaga

EI, Profesor Ramón Castro Liceaga POR INSERSION (continuacion) {21,21,40,9,10,35} <-- aux=4; {4,21,40,9,10,35} <-- Ahora la sublista ordenada es {4,21,40}. Insertamos el 9: {4,21,40,40,10,35} <-- aux=9; {4,21,21,40,10,35} <-- aux=9; {4,9,21,40,10,35} <-- Ahora la sublista ordenada es {4,9,21,40}. Insertamos el 10: {4,9,21,40,40,35} <-- aux=10; {4,9,21,21,40,35} <-- aux=10; {4,9,10,21,40,35} <-- Ahora la sublista ordenada es {4,9,10,21,40}. Y por último insertamos el 35: {4,9,10,21,40,40} <-- aux=35; {4,9,10,21,35,40} <-- El array está ordenado. EI, Profesor Ramón Castro Liceaga

EI, Profesor Ramón Castro Liceaga Código fuente. void insertionSort(int numbers[], int array_size) { int i, j, index; for (i=1; i < array_size; i++){ index = numbers[i]; j = i; while ((j > 0) && (numbers[j-1] > index)) { numbers[j] = numbers[j-1]; j = j - 1; } numbers[j] = index; EI, Profesor Ramón Castro Liceaga

EI, Profesor Ramón Castro Liceaga POR METODO SHELL (Ordenamiento por bloques de datos) El algoritmo realiza multiples pases a través de la lista, y en cada pasada ordena un numero igual de items. El tamaño del set de datos (también llamado distancia o intervalo) a ser ordenado va creciendo a medida que el algoritmo recorre el array hasta que finalmente el set esta compuesto por todo el array en si mismo. El tamaño del set de datos usado tiene un impacto significativo en la eficiencia del algoritmo. Algunas implementaciones de este algoritmo tienen una función que permite calcular el tamaño óptimo del set de datos para un array determinado. EI, Profesor Ramón Castro Liceaga

EI, Profesor Ramón Castro Liceaga POR METODO SHELL Por ejemplo, lo pasos para ordenar el array {40,21,4,9,10,35} mediante el método de Shell serían: Salto=3: Primera pasada: {9,21,4,40,10,35} <-- se intercambian el 40 y el 9. {9,10,4,40,21,35} <-- se intercambian el 21 y el 10. Salto=1: {9,4,10,40,21,35} <-- se intercambian el 10 y el 4. {9,4,10,21,40,35} <-- se intercambian el 40 y el 21. {9,4,10,21,35,40} <-- se intercambian el 35 y el 40. Segunda pasada: {4,9,10,21,35,40} <-- se intercambian el 4 y el 9. Con sólo 6 intercambios se ha ordenado el array, cuando por inserción se necesitaban muchos más. EI, Profesor Ramón Castro Liceaga

EI, Profesor Ramón Castro Liceaga void shellSort(int numbers[], int array_size) { int i, j, increment, temp; increment = 3; while (increment > 0) for (i=0; i < array_size; i++) j = i; temp = numbers[i]; while ((j >= increment) && (numbers[j-increment] > temp)) numbers[j] = numbers[j - increment]; j = j - increment; } numbers[j] = temp; if (increment/2 != 0) increment = increment/2; else if (increment == 1) increment = 0; else increment = 1; EI, Profesor Ramón Castro Liceaga

EI, Profesor Ramón Castro Liceaga ORDENACION RAPIDA (Quick Sort) algoritmo recursivo. El Quick sort es un algoritmo del estilo divide y venceras. Es bastante más rápido que el merge sort. El algoritmo de recursión consiste en una serie de cuatro pasos: 1. Si hay menos de un elemento a ser ordenado retorna inmediatamente (termina). 2. Tomar un elemento del vector que sirve como “muestra” 3. Dividir el array en dos partes, una con los elementos mayores y una con los elementos menores al muestra. 4. Repite recursivamente el algoritmo para las dos mitades del array original hasta que queda ordenado. EI, Profesor Ramón Castro Liceaga

EI, Profesor Ramón Castro Liceaga Actividad adicional: Hacer un programa en C, C++ que muestre un menú que integre los métodos de ordenamientos anteriormente vistos. EI, Profesor Ramón Castro Liceaga

EI, Profesor Ramón Castro Liceaga GRACIAS POR TU ATENCION … EI, Profesor Ramón Castro Liceaga