Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porBlanca García Gallego Modificado hace 8 años
1
Introducción a la Programación Orientada a Objetos Ordenamiento Ordenar una estructura de datos consiste en reacomodar sus elementos de manera tal que queden ordenados de acuerdo a un atributo clave. Los algoritmos de ordenamiento resultan un tema de interés por varios motivos: Son importantes en diversas aplicaciones, en particular en el área de Bases de Datos, en donde los requirimientos de eficiencia hacen del ordenamiento un tema crítico. Existen muchísimos métodos para resolver el mismo problema y por lo tanto es un tema interesante para introducir nociones de tiempo de ejecución y eficiencia. Permiten ilustrar temas importantes de Resolución de Problemas.
2
Introducción a la Programación Orientada a Objetos El método del Merge Sort consiste en partir una estructura en mitades, ordenar cada mitad y luego intercalar ordenadamente ambas mitades. Cada mitad se ordena aplicando el mismo método. Ordenamiento: Merge Sort
3
Introducción a la Programación Orientada a Objetos Dividir en “mitades” Ordenar la primera mitad Ordenar la segunda mitad Intercalar las mitades ordenadas Ordenamiento: Merge Sort
4
Introducción a la Programación Orientada a Objetos 4295119178 1-4 1-9 5-9 1-2 3-4 Ordenamiento: Merge Sort 1 2 3 4 5 6 7 8 9
5
Introducción a la Programación Orientada a Objetos si la estructura tiene más de dos elementos Dividir en “mitades” Ordenar la primera mitad Ordenar la segunda mitad Intercalar las mitades ordenadas sino Comparar e intercambiar Ordenamiento: Merge Sort Observemos que este algoritmo NO depende: -Del lenguaje de programación -Del tipo de componentes
6
Introducción a la Programación Orientada a Objetos 4295119178 7 > 4 1-4 1-9 5-9 1-2 3-4 Ordenamiento: Merge Sort
7
Introducción a la Programación Orientada a Objetos 7295119148 1-4 1-9 5-9 1-2 3-4 Ordenamiento: Merge Sort 1 2 3 4 5 6 7 8 9
8
Introducción a la Programación Orientada a Objetos 7295119148 2 < 9 1-4 1-9 5-9 1-2 3-4 Ordenamiento: Merge Sort
9
Introducción a la Programación Orientada a Objetos 7295119148 1-4 1-9 5-9 1-2 3-4 Ordenamiento: Merge Sort 1 2 3 4 5 6 7 8 9
10
Introducción a la Programación Orientada a Objetos 7295119148 Intercalar 1-4 1-9 5-9 1-2 3-4 Ordenamiento: Merge Sort 1 2 3 4 5 6 7 8 9
11
Introducción a la Programación Orientada a Objetos 4795119128 1-4 1-9 5-9 Ordenamiento: Merge Sort 1 2 3 4 5 6 7 8 9
12
Introducción a la Programación Orientada a Objetos 4795119128 5 < 11 1-4 1-9 5-9 5-6 7-9 Ordenamiento: Merge Sort
13
Introducción a la Programación Orientada a Objetos 4795119128 1-4 1-9 5-9 5-6 7-9 Ordenamiento: Merge Sort 1 2 3 4 5 6 7 8 9
14
Introducción a la Programación Orientada a Objetos 4795119128 1-4 1-9 5-9 5-6 7-9 7-7 8-9 Ordenamiento: Merge Sort 1 2 3 4 5 6 7 8 9
15
Introducción a la Programación Orientada a Objetos 4795119128 1 < 8 1-4 1-9 5-9 5-6 7-9 7-7 8-9 Ordenamiento: Merge Sort
16
Introducción a la Programación Orientada a Objetos 4795119128 Intercalar 1-4 1-9 5-9 5-6 7-9 7-7 8-9 Ordenamiento: Merge Sort 1 2 3 4 5 6 7 8 9
17
Introducción a la Programación Orientada a Objetos 4795111829 Intercalar 1-4 1-9 5-9 5-6 7-9 Ordenamiento: Merge Sort 1 2 3 4 5 6 7 8 9
18
Introducción a la Programación Orientada a Objetos 4795111829 Intercalar 1-4 1-9 5-9 Ordenamiento: Merge Sort 1 2 3 4 5 6 7 8 9
19
Introducción a la Programación Orientada a Objetos 4791589211 Intercalar 1-4 1-9 5-9 Ordenamiento: Merge Sort 1 2 3 4 5 6 7 8 9
20
Introducción a la Programación Orientada a Objetos 4791589211 Intercalar 1-4 1-9 5-9 Ordenamiento: Merge Sort 1 2 3 4 5 6 7 8 9
21
Introducción a la Programación Orientada a Objetos 2457899111 1-9 Ordenamiento: Merge Sort 1 2 3 4 5 6 7 8 9
22
Introducción a la Programación Orientada a Objetos Algoritmo MergeSort si la cantidad de componentes es menor o igual a 2 Comparar Intercambiar sino Dividir en mitades MergeSort primera mitad MergeSort segunda mitad Intercalar las mitades ordenadas Ordenamiento: Merge Sort
23
Introducción a la Programación Orientada a Objetos Algoritmo MergeSort DE ini,fin si ini+1 = fin si T ini es mayor que T fin intercambiarT ini, T fin sino si ini < fin Mitad = (ini+fin) div 2 MergeSort ini,Mitad-1 MergeSort Mitad,fin Intercalar ini,Mitad-1,Mitad,fin Ordenamiento: Merge Sort
24
Introducción a la Programación Orientada a Objetos Algoritmo MergeSort DE ini,fin si ini+1 = fin si T ini es mayor que T fin intercambiarT ini, T fin sino si ini < fin Mitad = (ini+fin) div 2 MergeSort ini,Mitad-1 MergeSort Mitad,fin Intercalar ini,Mitad-1,Mitad,fin Ordenamiento: Merge Sort
25
Introducción a la Programación Orientada a Objetos 4295119178 1-4 1-9 5-9 Ordenamiento: Merge Sort MergeSort (1,4) MergeSort (5,9) MergeSort (1,9) 1 2 3 4 5 6 7 8 9
26
Introducción a la Programación Orientada a Objetos 4791589211 1-4 1-9 5-9 MergeSort (1,4) MergeSort (5,9) Intercalar (1,4,5,9) Ordenamiento: Merge Sort 2457899111 MergeSort (1,9) 1 2 3 4 5 6 7 8 9
27
Introducción a la Programación Orientada a Objetos 4295119178 1-4 1-9 5-9 MergeSort (1,4) 1-2 3-4 MergeSort (1,2) MergeSort (3,4) Intercalar (1,2,3,4) Ordenamiento: Merge Sort CompararIntercambiar 1 2 3 4 5 6 7 8 9
28
Introducción a la Programación Orientada a Objetos 7295119148 1-4 1-9 5-9 MergeSort (1,4) 1-2 3-4 MergeSort (1,2) MergeSort (3,4) Intercalar (1,2,3,4) Ordenamiento: Merge Sort 1 2 3 4 5 6 7 8 9
29
Introducción a la Programación Orientada a Objetos 7295119148 1-4 1-9 5-9 MergeSort (1,4) 1-2 3-4 MergeSort (1,2) MergeSort (3,4) Intercalar (1,2,3,4) Ordenamiento: Merge Sort 1 2 3 4 5 6 7 8 9
30
Introducción a la Programación Orientada a Objetos 7295119148 1-4 1-9 5-9 MergeSort (1,4) 1-2 3-4 MergeSort (1,2) MergeSort (3,4) Intercalar (1,2,3,4) Ordenamiento: Merge Sort 1 2 3 4 5 6 7 8 9
31
Introducción a la Programación Orientada a Objetos 7295119148 1-4 1-9 5-9 MergeSort (1,4) 1-2 3-4 MergeSort (1,2) MergeSort (3,4) Intercalar (1,2,3,4) Ordenamiento: Merge Sort 1 2 3 4 5 6 7 8 9
32
Introducción a la Programación Orientada a Objetos 4795119128 1-4 1-9 5-9 MergeSort (1,4) 1-2 3-4 MergeSort (1,2) MergeSort (3,4) Intercalar (1,2,3,4) Ordenamiento: Merge Sort 1 2 3 4 5 6 7 8 9
33
Introducción a la Programación Orientada a Objetos 4795119128 1-4 1-9 5-9 MergeSort (1,4) 1-2 3-4 MergeSort (1,2) MergeSort (3,4) Intercalar (1,2,3,4) Ordenamiento: Merge Sort 1 2 3 4 5 6 7 8 9
34
Introducción a la Programación Orientada a Objetos Algoritmo MergeSort si la cantidad de componentes es menor o igual a 2 Comparar Intercambiar sino Dividir en mitades MergeSort primera mitad MergeSort segunda mitad Intercalar las mitades ordenadas Ordenamiento: Merge Sort
35
Introducción a la Programación Orientada a Objetos Algoritmo MergeSort DE ini,fin si ini+1 = fin si T ini es mayor que T fin intercambiarT ini, T fin sino si ini < fin Mitad = (ini+fin) div 2 MergeSort ini,Mitad-1 MergeSort Mitad,fin Intercalar ini,Mitad-1,Mitad,fin Ordenamiento: Merge Sort
36
Introducción a la Programación Orientada a Objetos Algoritmo Intercalar DE i1,n1,i2,n2 crear aux con n2-i1+1 elementos Ini=i1 mientras i1 <= n1 y i2 <= n2 si T i1 es menor que T i2 agregar T i1 al final de aux i1++ sino agregar T i2 al final de aux i2++ … Ordenamiento: Merge Sort
37
Introducción a la Programación Orientada a Objetos El método intercalar se implementa utilizando la misma estrategia que hemos propuesto antes para intercalar dos estructuras ordenadas, solo que ahora se intercalan las dos mitades de una estructura. Recordemos que al intercalar dos estructuras se genera una tercera en la cual los elementos se agregan al final. En la implementación en Java este método es privado, solo es accesible dentro de la clase. Ordenamiento: Merge Sort
38
Introducción a la Programación Orientada a Objetos Algoritmo Intercalar DE i1,n2,i2,n2 … Ordenamiento: Merge Sort mientras i1 <= n1 agregar T i1 al final de aux i1++ mientras i2 <= n2 agregar T i2 al final de aux i2++ i1=ini-1 para i entre 1 y n2-i1+1 T i1+i = aux i
39
Introducción a la Programación Orientada a Objetos 4795111883 Ordenamiento: Merge Sort Algoritmo MergeSort DE ini,fin si ini+1 = fin si T ini es mayor que T fin intercambiarT ini, T fin sino si ini < fin Mitad = (ini+fin) div 2 MergeSort ini,Mitad-1 MergeSort Mitad,fin Intercalar ini,Mitad-1,Mitad,fin inifin 19 MergeSort(1,9) mitad 0 1 2 3 4 5 6 7 8 9
40
Introducción a la Programación Orientada a Objetos 4795111883 Ordenamiento: Merge Sort Algoritmo MergeSort DE ini,fin si ini+1 = fin si T ini es mayor que T fin intercambiarT ini, T fin sino si ini < fin Mitad = (ini+fin) div 2 MergeSort ini,Mitad-1 MergeSort Mitad,fin Intercalar ini,Mitad-1,Mitad,fin inifin 19 MergeSort(1,9) mitad 5 1 2 3 4 5 6 7 8 9
41
Introducción a la Programación Orientada a Objetos 4795111883 Ordenamiento: Merge Sort Algoritmo MergeSort DE ini,fin si ini+1 = fin si T ini es mayor que T fin intercambiarT ini, T fin sino si ini < fin Mitad = (ini+fin) div 2 MergeSort ini,Mitad-1 MergeSort Mitad,fin Intercalar ini,Mitad-1,Mitad,fin inifin 19 MergeSort(1,9) 14 mitad 5 0 1 2 3 4 5 6 7 8 9
42
Introducción a la Programación Orientada a Objetos 4795111883 Ordenamiento: Merge Sort Algoritmo MergeSort DE ini,fin si ini+1 = fin si T ini es mayor que T fin intercambiarT ini, T fin sino si ini < fin Mitad = (ini+fin) div 2 MergeSort ini,Mitad-1 MergeSort Mitad,fin Intercalar ini,Mitad-1,Mitad,fin inifin 19 MergeSort(1,9) 14 mitad 5 3 1 2 3 4 5 6 7 8 9
43
Introducción a la Programación Orientada a Objetos 4795111883 Ordenamiento: Merge Sort Algoritmo MergeSort DE ini,fin si ini+1 = fin si T ini es mayor que T fin intercambiarT ini, T fin sino si ini < fin Mitad = (ini+fin) div 2 MergeSort ini,Mitad-1 MergeSort Mitad,fin Intercalar ini,Mitad-1,Mitad,fin inifin 19 MergeSort(1,9) 14 12 mitad 5 3 0 1 2 3 4 5 6 7 8 9
44
Introducción a la Programación Orientada a Objetos 4795111883 Ordenamiento: Merge Sort Algoritmo MergeSort DE ini,fin si ini+1 = fin si T ini es mayor que T fin intercambiarT ini, T fin sino si ini < fin Mitad = (ini+fin) div 2 MergeSort ini,Mitad-1 MergeSort Mitad,fin Intercalar ini,Mitad-1,Mitad,fin inifin 19 MergeSort(1,9) 14 12 84 mitad 5 3 0 1 2 3 4 5 6 7 8 9
45
Introducción a la Programación Orientada a Objetos 4795111883 Ordenamiento: Merge Sort Algoritmo MergeSort DE ini,fin si ini+1 = fin si T ini es mayor que T fin intercambiarT ini, T fin sino si ini < fin Mitad = (ini+fin) div 2 MergeSort ini,Mitad-1 MergeSort Mitad,fin Intercalar ini,Mitad-1,Mitad,fin inifin 19 MergeSort(1,9) 14 84 mitad 5 3 1 2 3 4 5 6 7 8 9
46
Introducción a la Programación Orientada a Objetos 4795111883 Ordenamiento: Merge Sort Algoritmo MergeSort DE ini,fin si ini+1 = fin si T ini es mayor que T fin intercambiarT ini, T fin sino si ini < fin Mitad = (ini+fin) div 2 MergeSort ini,Mitad-1 MergeSort Mitad,fin Intercalar ini,Mitad-1,Mitad,fin inifin 19 MergeSort(1,9) 14 84 34 mitad 5 3 0 1 2 3 4 5 6 7 8 9
47
Introducción a la Programación Orientada a Objetos 4795111883 Ordenamiento: Merge Sort Algoritmo MergeSort DE ini,fin si ini+1 = fin si T ini es mayor que T fin intercambiarT ini, T fin sino si ini < fin Mitad = (ini+fin) div 2 MergeSort ini,Mitad-1 MergeSort Mitad,fin Intercalar ini,Mitad-1,Mitad,fin inifin 19 MergeSort(1,9) 14 84 34 mitad 5 3 0 1 2 3 4 5 6 7 8 9
48
Introducción a la Programación Orientada a Objetos 4795111883 Ordenamiento: Merge Sort Algoritmo MergeSort DE ini,fin si ini+1 = fin si T ini es mayor que T fin intercambiarT ini, T fin sino si ini < fin Mitad = (ini+fin) div 2 MergeSort ini,Mitad-1 MergeSort Mitad,fin Intercalar ini,Mitad-1,Mitad,fin inifin 19 MergeSort(1,9) 14 84 1 2 3 4 5 6 7 8 9
49
Introducción a la Programación Orientada a Objetos 4795111883 Ordenamiento: Merge Sort Algoritmo MergeSort DE ini,fin si ini+1 = fin si T ini es mayor que T fin intercambiarT ini, T fin sino si ini < fin Mitad = (ini+fin) div 2 MergeSort ini,Mitad-1 MergeSort Mitad,fin Intercalar ini,Mitad-1,Mitad,fin inifin 19 MergeSort(1,9) 14 84 i1n1 12 i2n2 34 1 2 3 4 5 6 7 8 9
50
Introducción a la Programación Orientada a Objetos 4895111388 Ordenamiento: Merge Sort Algoritmo MergeSort DE ini,fin si ini+1 = fin si T ini es mayor que T fin intercambiarT ini, T fin sino si ini < fin Mitad = (ini+fin) div 2 MergeSort ini,Mitad-1 MergeSort Mitad,fin Intercalar ini,Mitad-1,Mitad,fin inifin 19 MergeSort(1,9) 59 74 1 2 3 4 5 6 7 8 9
51
Introducción a la Programación Orientada a Objetos 4895111388 Ordenamiento: Merge Sort Algoritmo MergeSort DE ini,fin si ini+1 = fin si T ini es mayor que T fin intercambiarT ini, T fin sino si ini < fin Mitad = (ini+fin) div 2 MergeSort ini,Mitad-1 MergeSort Mitad,fin Intercalar ini,Mitad-1,Mitad,fin inifin 19 MergeSort(1,9) 59 74 i1n1 56 i2n2 79 1 2 3 4 5 6 7 8 9
52
Introducción a la Programación Orientada a Objetos Empleados LegajoApellido y nombreFecha de Ingreso 1014Luces José11/3/2000 5226Álvez José8/6/2006 1020Sánchez Hugo2/11/1999 1012Pintos Marisa10/2/2002 1752Sanchez Pedro2/5/2009 1563Saenz Micaela10/10/2010 1015Ardiles Pedro4/5/1999 Ordenamiento: Merge Sort
53
Introducción a la Programación Orientada a Objetos Empleados LegajoApellido y nombreFecha de Ingreso 1014Luces José11/3/2000 5226Álvez José8/6/2006 1020Sánchez Hugo2/11/1999 1012Pintos Marisa10/2/2002 1752Sanchez Pedro2/5/2009 1563Saenz Micaela10/10/2010 1015Ardiles Pedro4/5/1999 MergeSort Ordenamiento: Merge Sort
54
Introducción a la Programación Orientada a Objetos Empleados LegajoApellido y nombreFecha de Ingreso 1014Luces José11/3/2000 1020Sánchez Hugo2/11/1999 5226Álvez José8/6/2006 1012Pintos Marisa10/2/2002 1015Ardiles Pedro4/5/1999 1563Saenz Micaela10/10/2010 1752Sanchez Pedro2/5/2009 Intercalar Ordenamiento: Merge Sort
55
Introducción a la Programación Orientada a Objetos PlantaEmpleados T : arreglo de Empleado cant : entero > PlantaEmpleados (max : entero) > insertar (elem :Empleado) eliminar (elem : Empleado) ordenadoMS () Intercambia los elementos del arreglo de modo que queden ordenados por legajo aplicando Merge Sort Ordenamiento: Merge Sort
56
Introducción a la Programación Orientada a Objetos PlantaEmpleados T : arreglo de Empleado cant : entero > cantElem() : entero estaLlena () : boolean estaElem (elem : Empleado) : boolean ordenarMS():PlantaEmpleados Retorna una colección de Empleados con los mismos elementos pero ordenados por Legajo aplicando Merge Sort Ordenamiento: Merge Sort
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.