Fondazioni matematiche di selezione: Rilievi di Comparimenti e Scambi previsti in Quicksort

Quicksort è un algoritmo di smistamento ampiamente usato noto per la sua efficienza. Capire le sue prestazioni comporta analizzare il numero atteso di confronti e swap durante l'esecuzione. Questo articolo esplora i principi matematici dietro queste aspettative, concentrandosi sull'analisi probabilistica di Quicksort.

Numero di Confronti previsto

Il numero atteso di confronti in Quicksort dipende dalla scelta del pivot e dal processo di partizionamento. Supponendo che tutte le permutazioni siano altrettanto probabili, il caso medio può essere analizzato utilizzando equazioni ricorrenti. Per una serie di dimensioni n], i confronti attesi, denotati come C(n), soddisfacerence

C(n) = n - 1 + frac{1}{n} somma {k=0}^{n-1} [C(k) + C(n - 1 - k)]

Questa ricorrenza semplifica un risultato ben noto: []C(n) ≈ 2n ln n[]] per grandi n. La derivazione comporta la somma di tutte le possibili posizioni pivot e l'applicazione di proprietà di numeri armonici.

Numero previsto di swap

Il numero atteso di swap è legato al numero di confronti e alla distribuzione delle scelte pivot. In caso di casualità uniforme, gli swap attesi, denotati come S(n), possono essere approssimati analizzando i passaggi di partizionamento.

Ogni passo di partizione comporta elementi di paliatura per garantire il corretto posizionamento del pivot. Le swaps attese per partizione sono proporzionali alla dimensione dei subarray. La somma di tutte le chiamate ricorrenti produce un'approssimazione: S(n) ≈ n ln n.

Sintesi delle aspettative

  • Comparisons:[] Circa 2n ln n per grandi n.
  • Svegli:[] Approssimativamente n ln n per grandi [] .
  • Entrambe le metriche crescono logaritmicamente con dimensioni array, riflettendo l'efficienza di Quicksort.