Esercizio - quali coppie vengono confrontate, confronti del minimo e della mediana in quicksort
Testo. Quicksort con pivot casuale ordina chiavi distinte .
- Probabilità che e siano confrontati; che lo siano e ; che lo siano due chiavi adiacenti.
- Numero atteso di confronti in cui interviene il minimo ; e la mediana ().
- Controllare che, sommando su tutti gli elementi, si ottiene il doppio di .
- Domanda da orale: dimostrare il lemma .
Soluzione
1. Probabilità. Per il lemma .
- : , .
- : , (sono confrontati solo se il primo pivot dell'intero insieme è uno dei due estremi).
- Adiacenti (): , perché tra i due non ci sono elementi che possano separarli: prima o poi uno dei due è pivot mentre l'altro è ancora nel suo problema.
2. Confronti di un elemento. Sia il numero di confronti che coinvolgono . Per linearità .
- : .
- : a destra (distanze , dunque ): ; a sinistra (, valori ): . Totale .
In generale : il minimo e il massimo sono confrontati meno degli elementi centrali, ma di poco ( contro con ).
3. Somma. Ogni confronto coinvolge due elementi, quindi e . Calcolando i dieci valori per e sommando si ottiene , e . ✓
4. Dimostrazione del lemma. Sia . Finché nessun elemento di è stato scelto come pivot, i suoi elementi stanno nello stesso sottoproblema: un pivot esterno è minore o maggiore di tutti, quindi li lascia insieme. Il primo elemento di scelto come pivot è uniforme su (ogni pivot è scelto a caso nel proprio sottoproblema, che contiene tutto ). Se è o , i due vengono confrontati; se è interno, li separa e non saranno mai confrontati. La probabilità è .
Risultato. , e ; , ; .
Verifica Python: le probabilità sono calcolate con la ricorrenza esatta sul rango del pivot (pcomp: , , ) e coincidono con ; simulazione dei confronti del minimo e della mediana su esecuzioni: e .
Versione ripasso
- Lemma: . Prova: finché nessun elemento di è pivot restano insieme; il primo pivot di è uniforme; confronto solo se è o (Analisi probabilistica di quicksort e quickselectCon pivot casuale due elementi di rango $i<j$ vengono confrontati con probabilità $2/(j-i+1)$; sommando sulle coppie il numero atteso di confronti di quicksort è esattamente $2(n+1)H_n-4n\approx2n\ln n-2{,}85,n$ (stessa formula dalla ricorrenza $C_n=n-1+\frac2n\sum_{k<n}C_k$). Quickselect trova il $k$-esimo elemento con attesa lineare, al più $4n$ confronti (mediana $\approx3{,}39,n$). Pivot fisso su input casuale equivale a pivot casuale su input qualunque.Analisi probabilistica di quicksort e quickselect →).
- : : ; : ; adiacenti: .
- Confronti di : (Linearità del valore atteso e variabili indicatriciLa linearità $E[X+Y]=E[X]+E[Y]$ vale sempre, anche senza indipendenza; con le variabili indicatrici ($E[I_A]=P(A)$) trasforma un conteggio in una somma di probabilità. Applicazioni: attesa del primo successo $1/p$, collezionista di figurine $nH_n$, punti fissi di una permutazione (media $1$), record (media $H_n$), inversioni ($n(n-1)/4$), attesa condizionata, identità di Wald $E[S_N]=E[N]E[X]$.Linearità del valore atteso e variabili indicatrici →). Minimo: ; mediana : .
- Controllo: .
- Verifica: ricorrenza esatta per le probabilità; simulazione e .
- Errore tipico: dire che il minimo è confrontato con tutti ( volte): dipende dai pivot scelti.