Esercizio - confronti attesi di quicksort su 5 elementi, tre metodi
Testo. Quicksort con pivot scelto uniformemente a caso ordina chiavi distinte. Sia il numero di confronti.
- Calcolare sommando le probabilità di confronto delle coppie.
- Calcolarlo con la formula chiusa e con la ricorrenza .
- Scrivere la distribuzione esatta di e ricalcolare la media.
- Con Markov, quale limite si ottiene su ? Qual è il valore vero?
Soluzione
1. Coppie. Con le chiavi ordinate , la coppia è confrontata con probabilità (il primo pivot scelto tra deve essere uno dei due estremi). Per distanza :
- : coppie, probabilità , contributo ;
- : coppie, , contributo ;
- : coppie, , contributo ;
- : coppia, , contributo .
.
2. Formula e ricorrenza. , quindi .
Ricorrenza, con (usati come valori attesi): ; ; ; . ✓
3. Distribuzione. Il pivot ha rango con probabilità ; costa e lascia sottoproblemi di taglia e . Costi delle taglie piccole: taglie : ; taglia : ; taglia : pivot centrale (probabilità ) costa , pivot estremo () costa , quindi con probabilità ; taglia : i pivot di rango (probabilità ) costano , quelli di rango costano , cioè con probabilità e con . Per i ranghi del pivot su elementi:
- (probabilità ): ;
- (probabilità ): , cioè con e con ;
- (probabilità ): , cioè con , con e con .
Il valore ha probabilità .
Distribuzione risultante:
| 6 | 7 | 8 | 9 | 10 | |
|---|---|---|---|---|---|
| probabilità |
Media: . ✓
4. Markov. . Il valore vero è : Markov è utile solo per dare una garanzia generale (Disuguaglianze di Markov, Chebyshev e JensenMarkov: per X ≥ 0, P(X ≥ a) ≤ E[X]/a; Chebyshev: P(|X − μ| ≥ ε) ≤ Var(X)/ε²; Jensen: per φ convessa, φ(E[X]) ≤ E[φ(X)]. Stimano probabilità e medie conoscendo solo media e varianza.Disuguaglianze di Markov, Chebyshev e Jensen →).
Risultato. con tutti e tre i metodi; con probabilità ; contro il limite di Markov .
Verifica Python: ricorrenza e distribuzione esatte con Fraction, simulazione di esecuzioni di quicksort: media .
Versione ripasso
- Coppie (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 →): ; .
- Formula: ().
- Ricorrenza: , , , .
- Distribuzione: pivot di rango ; ; . con probabilità ; media .
- Markov: , vero (Disuguaglianze di Markov, Chebyshev e JensenMarkov: per X ≥ 0, P(X ≥ a) ≤ E[X]/a; Chebyshev: P(|X − μ| ≥ ε) ≤ Var(X)/ε²; Jensen: per φ convessa, φ(E[X]) ≤ E[φ(X)]. Stimano probabilità e medie conoscendo solo media e varianza.Disuguaglianze di Markov, Chebyshev e Jensen →).
- Verifica: Fraction e simulazione .
- Errore tipico: dimenticare che la ricorrenza usa i valori attesi , non i costi di una singola esecuzione.