La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Introducción a la Programación Orientada a Objetos Ordenamiento Ordenar una estructura de datos consiste en reacomodar sus elementos de manera tal que.

Presentaciones similares


Presentación del tema: "Introducción a la Programación Orientada a Objetos Ordenamiento Ordenar una estructura de datos consiste en reacomodar sus elementos de manera tal que."— Transcripción de la presentación:

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


Descargar ppt "Introducción a la Programación Orientada a Objetos Ordenamiento Ordenar una estructura de datos consiste en reacomodar sus elementos de manera tal que."

Presentaciones similares


Anuncios Google