La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Caso.

Presentaciones similares


Presentación del tema: "0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Caso."— Transcripción de la presentación:

1 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Caso de estudio: Inventario Ordenamiento: Quick Sort Dr. Luciano H. Tamargo http://cs.uns.edu.ar/~lt Depto. de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur, Bahía Blanca 2015

2 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 CASO DE ESTUDIO: INVENTARIO Una dependencia municipal mantiene un inventario permanente de los bienes de uso. La clase Articulo modela a cada bien de uso con atributos: –código, –año de compra, –valor actual y –rubro: 1.Rodados, 2.Muebles, 3.Herramientas, 4.Equipos. Introducción a la Programación Orientada a Objetos IPOO - 2015 2

3 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 CASO DE ESTUDIO: INVENTARIO El conjunto de bienes de uso se mantiene en un arreglo parcialmente ocupado con componentes de clase Articulo, encapsulado en una clase Inventario. El sistema GestionInventario actualiza el objeto Inventario mediante las operaciones provistas por la clase. Introducción a la Programación Orientada a Objetos IPOO - 2015 3

4 Inventario > t [] Articulo cant: entero > Inventario(max: entero) > insertar(c: Articulo) eliminar(c: Articulo) depreciarRubro(r:entero,p:real) ordenar() > cantArt(): entero estaLleno(): boolean recuperar(c: entero): Articulo pertenece(c: entero): boolean pertenece(a: Articulo): boolean unAnio(a: entero): Inventario Articulo > codigo: entero rubro: entero valor: real anio: entero > Articulo(c:entero, r:entero, v:entero, a:entero) > depreciar(p: real) > equals(Articulo a): boolean

5 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 CASO DE ESTUDIO: INVENTARIO Las clases Inventario y Articulo están asociadas. La clase Inventario encapsula a un arreglo t de elementos de clase Articulo. El atributo cant mantiene en cada momento la cantidad de elementos ocupados en el arreglo y también la posición en la que se va a insertar el próximo elemento. Los elementos están “comprimidos”, todos los elementos nulos están al final. Introducción a la Programación Orientada a Objetos IPOO - 2015 5

6 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 CASO DE ESTUDIO: INVENTARIO Inventario(max: entero) crea un objeto de clase Inventario. Se crea un arreglo de max elementos, inicialmente nulos. insertar(a: Articulo) Asigna a a la primera posición libre del arreglo, es decir, cant. Aumenta el valor de cant. Requiere que la clase cliente haya verificado que la colección no esté llena y no haya otro artículo con el mismo código eliminar(a: Articulo) copia el último elemento en la posición que ocupaba a, de modo que no se conserva el orden en el que se insertan. Decrementa el valor de cant. Si c no pertenece al arreglo no provoca ningún cambio. Introducción a la Programación Orientada a Objetos IPOO - 2015 6

7 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 CASO DE ESTUDIO: INVENTARIO depreciarRubro(r: entero, p: float) modifica el valor de cada artículo del rubro r decrementándolo de acuerdo al porcentaje p. ordenar() reacomoda el inventario ordenando los artículos por código aplicando la estrategia quick sort. Introducción a la Programación Orientada a Objetos IPOO - 2015 7

8 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 CASO DE ESTUDIO: INVENTARIO recuperar(c: entero) Retorna, si existe, el artículo con el código c. Si no existe retorna null. pertenece(c: entero) Retorna verdadero si un elemento del Inventario tiene el código c. pertenece(a: Articulo) Decide si algún elemento de la colección tiene el mismo estado interno que a. unAnio(a: entero) Genera un objeto de clase Inventario solo con los objetos que corresponden al año a. Introducción a la Programación Orientada a Objetos IPOO - 2015 8

9 class Inventario { //Atributos de Instancia private Articulo[] t; private int cant; /*Constructor Crea una Coleccion con capacidad para max elementos*/ public Inventario(int max) { t = new Articulo[max]; cant = 0; } class GestiónInventario { … Inventario im = new Inventario(100); … }

10 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 CASO DE ESTUDIO: INVENTARIO 10 im … length 100 t cant 0 :Inventario

11 //Comandos public void insertar (Articulo a){ /*Asigna a a la primera posición libre del arreglo, es decir, cant. Aumenta el valor de cant. Requiere que la clase cliente haya verificado que la colección no esté llena y a esté ligado. */ t[cant++] = a; } class GestiónInventario { cod = 119; art = new Articulo(cod,1,155000,2013); if (!im.estaLleno() && !im.pertenece(cod)) im.insertar(art); … }

12 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 CASO DE ESTUDIO: INVENTARIO 12 im … length 100 t cant 0 :Inventario :Articulo 119 1 155000 2013

13 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 CASO DE ESTUDIO: INVENTARIO //Consultas public int cantArt () { return cant; } public boolean estaLleno() { return cant == t.length; } Introducción a la Programación Orientada a Objetos IPOO - 2015 13

14 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 CASO DE ESTUDIO: INVENTARIO public Articulo recuperar(int c){ /*Retorna, si existe, el artículo con el código c. Si no existe retorna nulo*/ boolean esta = false; int i; for ( i = 0; !esta && i < cantArt() ; i++){ esta = t[i].obtenerCodigo() == c; } if (esta) return t[i]; else return null; } 14

15 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 CASO DE ESTUDIO: INVENTARIO public Articulo recuperar(int c){ /*Retorna, si existe, el artículo con el código c. Si no existe retorna nulo*/ boolean esta = false; int i; for ( i = 0; !esta && i < cantArt() ; i++){ esta = t[i].obtenerCodigo() == c; } if (esta) return t[i]; else return null; } 15 Observemos que en este caso no existe la posibilidad de que la referencia sea nula, si la clase cliente cumplió con su responsabilidad.

16 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 CASO DE ESTUDIO: INVENTARIO Introducción a la Programación Orientada a Objetos IPOO - 2015 16 public boolean pertenece (int c){ /*Retorna verdadero si un elemento del Inventario tiene el código c*/ boolean esta = false; for(int i=0; !esta && i< cantArt(); i++){ esta = t[i].obtenerCodigo() == c; } return esta; }

17 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 CASO DE ESTUDIO: INVENTARIO Introducción a la Programación Orientada a Objetos IPOO - 2015 17 public boolean pertenece (Articulo c){ /*Decide si algún elemento de la colección tiene el mismo estado interno que c*/ boolean esta = false; for (int i=0; !esta && i<cantArt(); i++){ esta = t[i].equals(c); } return esta; }

18 Introducción a la Programación Orientada a Objetos IPOO - 2015 18 public void eliminar(Articulo c){ /* Copia el último elemento en la posición que ocupaba c, de modo que no se conserva el orden en el que se insertan. Decrementa el valor de cant. Si c no pertenece al arreglo no provoca ningún cambio */ boolean esta = false; int i= 0; while (!esta && i < cantArt())//Busca a c if (t[i] == c) esta = true; else i++; if (esta) { cant--; t[i] = t[cant]; t[cant] = null; } }

19 Introducción a la Programación Orientada a Objetos IPOO - 2015 19 public void eliminar(Articulo c){ /* Copia el último elemento en la posición que el elemento equivalente a c, de modo que no se conserva el orden en el que se insertan. Decrementa el valor de cant. Si c no pertenece al arreglo no provoca ningún cambio */ boolean esta = false; int i= 0; while (!esta && i < cantArt())// Busca a c if (t[i].equals(c)) esta = true; else i++; if (esta) { cant--; t[i] = t[cant]; t[cant] = null; } El diseñador debe especificar si buscamos un elemento con la misma identidad que c o con el mismo estado interno.

20 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 CASO DE ESTUDIO: INVENTARIO Introducción a la Programación Orientada a Objetos IPOO - 2015 20 public void depreciarRubro(int r, float p){ /*modifica el valor de cada artículo del rubro r decrementándolo de acuerdo al porcentaje p. */ for (int i = 0; i < cantArt() ; i++){ if(t[i].obtenerRubro() == r){ t[i].depreciar(p); } } }

21 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 CASO DE ESTUDIO: INVENTARIO Introducción a la Programación Orientada a Objetos IPOO - 2015 21 public Inventario unAnio(int a){ /*genera un objeto de clase Inventario solo con los objetos que corresponden al año a. */ Inventario n = new Inventario(cantArt()); for (int i = 0; i < cantArt() ; i++) if(t[i].obtenerAnio() == a){ n.insertar(t[i]); } return n; }

22 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ORDENAMIENTO: QUICK SORT El método de Quick Sort consiste en acomodar un elemento llamado Pivot en su posición definitiva y luego ordenar la estructura que queda a su izquierda y la que queda a su derecha. Todos los elementos a la izquierda del Pivot son menores a él. Todos los elementos a la derecha del Pivot son mayores a él. Las dos estructuras se ordenan aplicando el mismo método. Introducción a la Programación Orientada a Objetos IPOO - 2015 22

23 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ORDENAMIENTO: QUICK SORT Acomodar un elemento llamado Pivot Ordenar a la izquierda del Pivot Ordenar a la derecha del Pivot Introducción a la Programación Orientada a Objetos IPOO - 2015 23

24 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ORDENAMIENTO: QUICK SORT Introducción a la Programación Orientada a Objetos IPOO - 2015 24 2157611948 4295 6178

25 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ORDENAMIENTO: QUICK SORT 25 21564 14562 71198 7 98

26 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ORDENAMIENTO: QUICK SORT 26 14562 24561 71198 7 98

27 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ORDENAMIENTO: QUICK SORT 24561 24561 71198 7 98

28 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ORDENAMIENTO: QUICK SORT 24561 24561 71198 798

29 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ORDENAMIENTO: QUICK SORT 24561 24561 79811 789

30 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ORDENAMIENTO: QUICK SORT Acomodar un elemento llamado Pivot Ordenar a la izquierda del Pivot Ordenar a la derecha del Pivot Introducción a la Programación Orientada a Objetos IPOO - 2015 30 Algoritmo QuickSort si hay más de un elemento si hay dos elementos comparar e intercambiar sino Acomodar Pivot QuickSort a la izquierda del Pivot QuickSort la derecha del Pivot

31 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ORDENAMIENTO: QUICK SORT Introducción a la Programación Orientada a Objetos IPOO - 2015 31 Algoritmo QuickSort DE ini, fin si ini < fin si ini + 1 = fin Comparar y Acomodar sino pospivot  AcomodarPivot ini, fin QuickSort ini, pospivot - 1 QuickSort pospivot + 1, fin

32 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ORDENAMIENTO: QUICK SORT 4295116178 Acomodar Pivot

33 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ORDENAMIENTO: QUICK SORT Acomodar Pivot 4295116178

34 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ORDENAMIENTO: QUICK SORT Acomodar Pivot 4295116178 7 > 4

35 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ORDENAMIENTO: QUICK SORT Acomodar Pivot 7295116148

36 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ORDENAMIENTO: QUICK SORT Acomodar Pivot 7295116148 7 > 2

37 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ORDENAMIENTO: QUICK SORT Acomodar Pivot 2795116148

38 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ORDENAMIENTO: QUICK SORT Acomodar Pivot 2795116148 7 < 9

39 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ORDENAMIENTO: QUICK SORT Acomodar Pivot 2795116148

40 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ORDENAMIENTO: QUICK SORT Acomodar Pivot 2795116148 7 < 8

41 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ORDENAMIENTO: QUICK SORT Acomodar Pivot 2795116148 7 > 1

42 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ORDENAMIENTO: QUICK SORT Acomodar Pivot 2715116948 7 > 1

43 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ORDENAMIENTO: QUICK SORT Acomodar Pivot 2715116948

44 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ORDENAMIENTO: QUICK SORT Acomodar Pivot 2175116948

45 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ORDENAMIENTO: QUICK SORT Acomodar Pivot 2175116948 7 > 5

46 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ORDENAMIENTO: QUICK SORT Acomodar Pivot 2175116948

47 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ORDENAMIENTO: QUICK SORT Acomodar Pivot 2157116948

48 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ORDENAMIENTO: QUICK SORT Acomodar Pivot 2157116948 7 < 11

49 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ORDENAMIENTO: QUICK SORT Acomodar Pivot 2157116948 7 < 9

50 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ORDENAMIENTO: QUICK SORT Acomodar Pivot 2157116948 7 > 6

51 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ORDENAMIENTO: QUICK SORT Acomodar Pivot 2157611948

52 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ORDENAMIENTO: QUICK SORT Acomodar Pivot 2157611948 7 > 6

53 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ORDENAMIENTO: QUICK SORT Acomodar Pivot 2156711948

54 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ORDENAMIENTO: QUICK SORT Acomodar Pivot 2156711948 FIN

55 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ORDENAMIENTO: QUICK SORT Introducción a la Programación Orientada a Objetos IPOO - 2015 55 Algoritmo AcomodaPivot DE ini, fin DS pos pos  avanzar ini,fin

56 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ORDENAMIENTO: QUICK SORT Introducción a la Programación Orientada a Objetos IPOO - 2015 56 Algoritmo QuickSort DE ini,Fin si ini < fin si ini+1= fin Comparar y Acomodar sino pospivot  AcomodarPivot ini,fin QuickSort ini, pospivot - 1 QuickSort pospivot + 1, fin Es un algoritmo genérico, no depende del tipo de los elementos.

57 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ORDENAMIENTO: QUICK SORT Introducción a la Programación Orientada a Objetos IPOO - 2015 57 Algoritmo avanzar DE izq, der DS posPiv si izq >= der posPiv  izq sino si T izq >= T izq+1 intercambiar izq izq+1 posPiv  avanzar izq+1,der sino posPiv  retroceder izq,der

58 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 ORDENAMIENTO: QUICK SORT Introducción a la Programación Orientada a Objetos IPOO - 2015 58 Algoritmo retroceder DE izq, der DS posPiv si izq >= der posPiv  izq sino si T izq <= T der posPiv  retroceder izq,der-1 sino intercambiar izq+1,der posPiv  avanzar izq,der-1


Descargar ppt "0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Caso."

Presentaciones similares


Anuncios Google