En geometría algorítmica , quickhull es un algoritmo para calcular el casco convexo . Es un algoritmo de divide y vencerás .
Tenga en cuenta en primer lugar que la envolvente convexa de un conjunto E de puntos se define por un subconjunto F de E . El principio del algoritmo es el siguiente. Primero, encontramos el punto P más a la izquierda y el punto Q más a la derecha (en caso de igualdad, elegimos arbitrariamente). Los puntos P y Q pertenecen a la envolvente convexa. Entonces podemos resolver el problema encontrando la envolvente convexa de los puntos sobre la línea (PQ) y la de los puntos debajo de la línea, luego concatenando las listas de puntos (sin repetir P y Q ). Los subproblemas tienen entonces una forma más restringida que la instancia original: tenemos dos puntos en una línea, de modo que todos los puntos están en el mismo lado de la línea, digamos a la izquierda de (PQ) , y todos los puntos que pertenecen a la línea están en el segmento [PQ] . Luego encontramos el punto H más alejado de la línea. La envolvente convexa de los puntos anteriores (PQ) se obtiene concatenando la envolvente convexa de los puntos a la izquierda de (PH) y la de los puntos a la izquierda de (HQ) . Podemos calcular estos conjuntos de forma recursiva (están en la misma configuración que antes).
El algoritmo tiene el mismo tipo de complejidad temporal que el algoritmo de clasificación quicksort , en el peor de los casos y en el promedio .
El algoritmo aparece en el libro Computational Geometry - An Introduction en 1985, donde los autores atribuyen las ideas a varios artículos de la década de 1970.