Numero esatto di confronti per calcolare la mediana


25

Volume III di Knuth di The Art of Computer Programming (capitolo 5, versetto 3.2) include la seguente tabella elenca il esatto numero minimo di confronti necessari per selezionare la -esimo elemento più piccolo da un insieme non ordinato di dimensione n , per tutti 1 t n 10 . Questa tabella, insieme alle note espressioni in forma chiusa V 1 ( n ) = n - 1 e V 2 ( n ) = n - 2 + n /tn1tn10V1(n)=n1V2(n)=n2+n/2 , rappresenta lamaggiorparte dello stato dell'arte apartire dal 1976.

Tabella di Knuth III: 5.3.2

Sono stati calcolati altri valori esatti di Vt(n) negli ultimi 36 anni? Sono particolarmente interessato ai valori esatti di M(n)=Vn/2(n) , il numero minimo di confronti necessari per calcolare la mediana.


Come sottolinea @ MarkusBläser, la tabella di Knuth sembra già incorporare i risultati più recenti di Bill Gasarch, Wayne Kelly e Bill Pugh ( Trovare il numero più grande di n per i piccoli, n . SIGACT News 27 (2): 88-96, 1996 .)


2
Il documento più famoso sull'argomento, credo, è quello di Pratt e Yao (1976) a cui è stato riconosciuto il merito di essere tra i primi ad aver trovato una tecnica (contraddittoria) per dimostrare che si trattava di una riduzione di questo problema. Se dovessi trovare articoli recenti sull'argomento, seguirei le citazioni fatte a questo documento . L'articolo più recente è quello di Dor e Zwick, ma esiste anche un sondaggio del 1996 di Paterson (anche se non ho cercato di vedere se si tratta di risultati esatti o meno).
Jérémie il

1
Nitpicking: nell'ultima frase della domanda, probabilmente intendevi il soffitto anziché il pavimento.
Tsuyoshi Ito,

6
Jeff, curioso di sapere perché sei interessato alla risposta esatta.
Chandra Chekuri,

5
Vi(n)

5
@ChandraChekuri: sto giocando con le varianti dell'algoritmo di selezione del tempo lineare Blum-Floyd-Pratt-Rivest-Tarjan , come potenziale problema di compiti con algoritmi. Se utilizziamo l'algoritmo di confronto minimo per trovare la mediana in ciascun blocco, quale dimensione del blocco ci dà la migliore costante nel big-Oh? 9 è meglio di 7 è meglio di 5; che ne dici di 11?
Jeffε

Risposte:


17

n=15

I limiti di Kenneth Oksanen per la selezione

Grazie a @ MarkusBläser per il vantaggio!


3

Mi chiedo se questa informazione possa essere utile per te. Sfortunatamente non fornisce alcuna informazione aggiuntiva alla domanda di questo post, ma è piuttosto una risposta al tuo commento su ciò a cui era destinato (analizzando le varianti di QuickSelect).

v(n,t)vt(n)

vt(n)=n+min(t,nt)+l.o.t..

Questo risultato non è usato di rado, e in particolare è la base per gli algoritmi in "Campionamento adattivo per QuickSelect" di Martínez, Panario e Viola . Il punto di partenza del documento è QuickSelect mediana-di-tre, e quindi di chiedere: è pertinente scegliere sistematicamente la mediana, quando l'elemento che cerchiamo ha un rango relativo molto più basso di n / 2 o molto più alto di n / 2 ?

In altre parole, supponi di cercare l' elemento -th in un elenco di elementi e di scegliere il tuo perno tra i cluster di elementi. Invece di prendere la mediana ( ), prenderai dove . Mostrano che questo algoritmo può, poiché la giusta scelta di essere praticamente più efficiente della variante mediana dei tre.n m m / 2 α m α = k / n mknmm/2αmα=k/nm

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.