Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Facultad de Informática
Expediente: 244602
Algoritmo
En Matemática, ciencias de la Computación y disciplinas relacionadas, un
algoritmo es un conjunto reescrito de instrucciones o reglas bien definidas,
ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos
que no generen dudas a quien lo ejecute. Dados un estado inicial y una entrada,
siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución.
Los algoritmos son objeto de estudio de la algoritmia.
Algoritmo QuickSort
Este algoritmo se basa en el principio de divide y conquistarás. Resulta más fácil
ordenar listas pequeñas que una grande, con lo cual irá descomponiendo la lista
en dos partes y ordenando esas partes.
Para ésto utiliza la recursividad.
• Dada una lista, elegir uno de sus elementos, que llamamos pivot
• Dividir la lista en dos sublistas:
▪ una con los elementos "menores"
▪ otra con los elementos "mayores"
• Ordenar recursívamente ambas sublistas
• Armar la lista resultado como: menoresOrdenados + pivot +
mayoresOrdenados
Vamos a ver más adelante que la elección del pivot y el orden con el que venga ya
de entrada la linea podrá afectar la eficiencia del algoritmo. En principio el
algoritmo no especifica cómo elegir el pivot.
Si sacamos las listas originales de cada nodo y solo dejamos los pivots, queda
más claro:
Ya tenemos todo el tercer nivel resuelto así que cada par va a retornar para
concatenarse entre sí con el pivot en el medio.
i = i + 1
arr[i], arr[j] = arr[j], arr[i]
# Funcion
def quickSort(arr, low, high):
if low < high:
pi = particion(arr, low, high)
quickSort(arr, low, pi - 1)
quickSort(arr, pi + 1, high)
Bibliografía
Fundamentos de Algoritmia, G. Brassard y P. Bratley. (ISBN 848966000)
The Art of Computer Programming, Knuth, D. E. [quien fue también, el creador del
TeX]
Introduction to Algorithms (2nd ed), Cormen, T. H., Leiserson, C. E., Rivest, R. L. y
Stein, C.
Introduction to Algorithms. A Creative Approach, Mamber, U.