Supponiamo di voler ordinare un elenco di numeri reali. Supponiamo che ci venga data una scatola nera che può ordinare istantaneamente numeri reali. Quanto vantaggio possiamo ottenere usando questa scatola nera?n √
Ad esempio, possiamo ordinare i numeri con solo chiamate nella casella nera? Il miglior algoritmo che ho trovato utilizza chiamate alla scatola nera. Ma non sono stato in grado di migliorarlo ulteriormente. Ecco il mio algoritmo che è simile a merge-sort:n
Per prima cosa partiziona l'elenco in lists con approssimativamente dimensioni. Quindi usa chiamate alla casella nera per ordinare questi elenchi. Infine, unisci gli elenchi ordinati utilizzando la casella nera come segue:√ s1,s2,. . . ,s √ √ √
Inserisci gli elementi più piccoli degli elenchi in un nuovo elenco , quindi chiama la casella nera per ordinarlo. Il numero in (primo e più piccolo elemento di ) sarà il numero più piccolo in . Possiamo metterlo al primo posto dell'elenco di output.
Supponendo che l'elemento è stato scelto da , sostituiamo con il secondo elemento più piccolo di elenco di ordinamento , e di nuovo corre la scatola nera su di esso per calcolare il secondo più piccolo membro della .
Continuiamo fino a quando tutti gli elementi non vengono ordinati. Il numero totale di chiamate a scatola nera per questa parte saràL [ 1 ] L S s j L [ 1 ] s j S n - √
. Pertanto nel complesso il numero totale di chiamate sarà .
D'altra parte, sembra che dovremmo essere in grado di ottenere un limite inferiore utilizzando il limite inferiore sui confronti numerici necessari per l'ordinamento come segue: Possiamo implementare la scatola nera usando confronti. Se riusciamo a risolvere il problema con chiamate alla scatola nera e fondendoci in tempo lineare possiamo ordinare numeri reali con confronti di che è impossibile.o( √nO(nlgn)
Immagino che potremmo dimostrare che è un limite inferiore per il numero di chiamate alla scatola nera, dal momento che molti confronti che usano nella scatola nera sarebbero condivisi e quindi vengono raccontati nel nostro argomento.
AGGIORNAMENTO: Come suggeriscono gli altri post, è anche possibile ottenere un .