Unir dos listas ordenadas
¿Cuántas comparaciones se necesitan para unir dos listas ordenadas, de largo y , con ? Una cota inferior está dada por el número de formas en que los elementos de una lista se pueden insertar en la otra, . Esto ocurre porque todo algoritmo que haga la unión debe realizar acciones distintas para cada una de las formas en que puede presentarse el input, y por lo tanto las respuestas a sus comparaciones pueden usarse para codificar ese aspecto del input.
Note que, si ,
debido a que pues . De esto obtenemos la cota inferior .
Asintóticamente, esta cota inferior es si y si no. Un algoritmo que alcanza esta cota inferior asintótica es el que toma la lista más corta y avanza en la más larga buscándolo mediante búsqueda exponencial (es decir, comparando el elemento en las posiciones 1, 2, 4, hacia adelante hasta pasarse y luego completando con búsqueda binaria). Para cada elemento de la lista más corta, sea el primer elemento de la lista más larga. Si la distancia entre e es de posiciones (en la lista más larga), entonces el costo total será .
Como , el peor caso se da cuando son todos (por la desigualdad de Jensen), en cuyo caso el algoritmo toma tiempo .
Cuando , la cota inferior es (por la aproximación de Stirling), cuyo término principal exacto se alcanza con el método típico de recorrer ambas listas secuencialmente e ir tomando el menor ( comparaciones).