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 en posiciones menores al Pivot son menores que él. Todos los elementos en posiciones mayores al Pivot son mayores que él. Las dos estructuras se ordenan aplicando el mismo método. Introducción a la Programación Orientada a Objetos
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
Ordenamiento: Quick Sort Introducción a la Programación Orientada a Objetos
Ordenamiento: Quick Sort Algoritmo QuickSort si hay más de un elemento Acomodar Pivot QuickSort a la izquierda del Pivot QuickSort la derecha del Pivot Introducción a la Programación Orientada a Objetos
Ordenamiento: Quick Sort Algoritmo QuickSort DE ini,Fin si ini < fin pospivot AcomodarPivot ini,fin QuickSort ini,pospivot-1 QuickSort pospivot+1,fin Es un algoritmo genérico, no depende del tipo de los elementos. Introducción a la Programación Orientada a Objetos
Ordenamiento: Quick Sort Algoritmo AcomodaPivot DE ini,fin DS pos pos avanzar ini,fin Introducción a la Programación Orientada a Objetos
Ordenamiento: Quick Sort 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 posPiv retroceder izq,der Introducción a la Programación Orientada a Objetos
Ordenamiento: Quick Sort Algoritmo retroceder DE izq, der DS posPiv si izq >= der posPiv izq sino si T izq <= T der posPiv retroceder izq,der-1 intercambiar izq+1,der posPiv avanzar izq,der-1 Es un algoritmo genérico, no depende del tipo de los elementos. Introducción a la Programación Orientada a Objetos
Genera una colección ordenada aplicando la estrategia QuickSort Colección Genérica Implementar las clases Colección y Elemento Coleccion f [] Elemento cant:entero Inserta e en la primera posición libre. Asume que hay al menos una posición libre <<constructores>> Coleccion (n : entero) <<comandos>> insertar (e :Elemento) <<Consultas>> cantElementos():entero ordenar():Coleccion Genera una colección ordenada aplicando la estrategia QuickSort Elemento es una clase abstracta que brinda los servicios requeridos por Ordenar
Búsqueda Binaria La búsqueda binaria requiere que la estructura esté ordenada y consiste en partirla en mitades, considerando que el elemento buscado puede ser: •igual al que está en el medio •menor que el que está en el medio mayor que el que está en el medio Introducción a la Programación Orientada a Objetos
Búsqueda Binaria Algoritmo Búsqueda Binaria si el elemento que está en el medio es el buscado EXISTE si hay un solo elemento y no es el buscado NO EXISTE sino si el elemento que está en el medio es menor al buscado Descartar la primera mitad Buscar en la segunda mitad Descartar la segunda mitad Buscar en la primera mitad Refinamos la solución Introducción a la Programación Orientada a Objetos
Búsqueda Binaria Algoritmo BúsquedaBinaria DE ini,fin,Elem Mitad(ini+fin)/2 si Tmitad = Elem EXISTE sino si ini >= fin NO EXISTE si Tmitad < Elem BuscarBinaria mitad+1,fin,Elem BusquedaBinaria ini,mitad-1,Elem Es un algoritmo genérico, no depende del tipo de los elementos. Introducción a la Programación Orientada a Objetos
Colección Ordenada Genérica Implementar la clase ColeccionOrdenada ColeccionOrdenada f [] Elemento cant:entero Inserta e en forma ordenada. Asume que hay al menos una posición libre <<constructores>> ColeccionOrdenada(n : entero) <<comandos>> insertar (e :Elemento) <<Consultas>> cantElementos():entero estaElemento(e:Elemento):boolean Busca el elemento aplicando la estrategia de búsqueda binaria Elemento es una clase abstracta que brinda los servicios requeridos por insertar y estaElemento