¿Qué es una búsqueda ternaria?

Hola,
Una búsqueda ternaria es básicamente una técnica en informática para encontrar el mínimo o el máximo de una función que está aumentando estrictamente y luego disminuyendo estrictamente o viceversa.
Supongamos que tienes un dominio. Divide ese dominio en 3 partes (primeros tercios, segundos tercios, últimos tercios). Una búsqueda ternaria determina que el mínimo o el máximo no pueden estar en los primeros tercios del dominio o que no puede estar en los últimos tercios del dominio, luego se repite en los dos tercios restantes. Una búsqueda ternaria es un ejemplo de algoritmos de división y conquista.

Una definición de libro de texto sería así: un árbol de 3 vías en el que el subárbol izquierdo de cada nodo tiene claves menores que la clave del nodo, cada subárbol central tiene claves iguales a la clave del nodo, y cada subárbol derecho tiene claves mayores que la clave del nodo. Si la clave es un multiciclo ( cadena , matriz, lista, etc.), el subárbol central se organiza por la siguiente subclave (carácter, matriz o elemento de lista, etc.)
(Incluso no entendí nada en la primera lectura).

Algoritmo de muestra: –

función ternarySearch (f, izquierda, derecha, precisión absoluta)
// izquierda y derecha son los límites actuales; el maximo esta entre ellos
if (derecha-izquierda <precisión absoluta)
return (left + right) / 2 leftThird: = (left * 2 + right) / 3 rightThird: = (left + right * 2) / 3
if (f (leftThird) <f (rightThird))
return ternarySearch (f, leftThird, right, absolutePrecision)
más
return ternarySearch (f, left, rightThird, absolutePrecision)
fin

Espero que esto responda la pregunta.

Fuentes: Desbordamiento de pila, snitter de Hubpages.