Quickselect: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
+template Algoritmo |
|||
(6 versioni intermedie di 5 utenti non mostrate) | |||
Riga 1:
{{F|
{{Algoritmo
|name=Quickselect
|
|
|
|
|
|
|
|spazio =
|
}}
In [[informatica]], '''quickselect''' è un [[algoritmo]] randomizzato ricorsivo che trova il k-esimo elemento di un [[array]] disordinato di grandezza ''n'' eseguendo [[O-grande|O]](n<sup>2</sup>) confronti nel caso peggiore e [[O-grande|O]](n) nel caso atteso. Si basa sull'
L'algoritmo quicksort ha diverse [[relazione di ricorrenza|relazioni di ricorrenza]], dovute al tipo di problema di minore entità che si viene a creare ogni volta che l'algoritmo viene eseguito. Se ogni chiamata ricorsiva dimezza il problema, si ha:
Riga 22:
Se invece si è nel caso peggiore, si ottiene: <math> T(n) = \mathcal{O}(n) + T(n - 1)</math> che ha soluzione [[O-grande|O]](n<sup>2</sup>) in base al [[teorema master]].
==Implementazione in
▲<source lang="text">
algoritmo Quickselect(array A, intero K) -> elemento_array
Riga 36 ⟶ 35:
se ( k < |A1| ) allora ritorna Quickselect(A1,k)
altrimenti se ( k > |A1| + |A2| ) allora
altrimenti
</syntaxhighlight>
{{portale|informatica}}
|