Supongamos que queremos ordenar una lista de números reales. Supongamos que se nos da un cuadro negro que puede ordenar números reales al instante. ¿Cuánta ventaja podemos ganar usando esta caja negra?
Por ejemplo, ¿podemos ordenar los números con solo llamadas al cuadro negro? El mejor algoritmo que he encontrado utiliza llamadas al cuadro negro. Pero no he podido mejorarlo más. Aquí está mi algoritmo que es similar a merge-sort:
Primero divide la lista en √ listass1,s2,. . . ,s √ con aproximadamente√ tamaño Luego usa √ llama al cuadro negro para ordenar estas listas. Finalmente, combine las listas ordenadas usando el cuadro negro de la siguiente manera:
Coloque los elementos más pequeños de las listas en una nueva lista , luego llame al cuadro negro para ordenarlo. El número en L [ 1 ] (primero y el elemento más pequeño de L ) será el número más pequeño de S . Podemos ponerlo en primer lugar de la lista de salida.
Suponiendo que el elemento ha sido seleccionado de s j , reemplazamos L [ 1 ] con el segundo elemento más pequeño de lista de ordenación s j , y de nuevo corre el cuadro negro en él para calcular el segundo miembro más pequeño de S .
Continuamos hasta que todos los elementos estén ordenados. El número total de llamadas de recuadro negro para esta parte será . Por lo tanto, en general, el número total de llamadas será.
Por otro lado, parece que deberíamos poder obtener un límite inferior usando el límite inferior en las comparaciones de números necesarias para ordenar de la siguiente manera: podemos implementar el cuadro negro usando comparaciones. Si podemos resolver el problema con las llamadas al cuadro negro y fusionarlas en tiempo lineal, podemos ordenar números reales con comparaciones cual es imposible.
Supongo que podríamos probar que es un límite inferior para la cantidad de llamadas al cuadro negro, ya que muchas comparaciones que se usan en el cuadro negro se compartirían y, por lo tanto, se cuentan en nuestro argumento.
ACTUALIZACIÓN: Como sugieren las otras publicaciones, también se puede lograr un .