Colas de prioridad
Esta técnica también nos permite establecer cotas inferiores al costo de realizar una secuencia de operaciones sobre una estructura de datos.
Por ejemplo, la implementación basada en un heap obtiene tiempos para las operaciones de insertar y extraer el mínimo en una cola de prioridad. Existen implementaciones, como las colas de Fibonacci (que mencionaremos en el capítulo de análisis amortizado) donde la inserción se puede hacer en tiempo , pero la extracción del mínimo aún cuesta . Incluso se puede crear un heap de elementos en tiempo . Nos preguntamos si existirá alguna implementación de colas de prioridad donde se pueda insertar un elemento en tiempo y extraer el mínimo en tiempo .
No es difícil ver que esto es imposible si se procede por comparaciones. Si lo fuera, podríamos reducir el problema de ordenar elementos al de insertarlos en una cola de prioridad vacía y extraer el mínimo, luego el mínimo de lo que queda, y así sucesivamente hasta obtener el arreglo ordenado. Si se pudiera extraer el mínimo en tiempo , podríamos ordenar en tiempo . Note que esto vale incluso en promedio, si las inserciones agregan los elementos en un orden uniformemente aleatorio.