algoritmo per nth_element [chiuso]
-
25-09-2019 - |
Domanda
Di recente ho scoperto che esiste un metodo chiamato nth_element nel STL. Per citare la descrizione:
nth_element è simile a partial_sort, in quanto parzialmente ordina una serie di elementi: it organizza la gamma [first, last) tale che l'elemento puntato dal iteratore è ennesima uguale al elemento che sarebbe in quella posizione se l'intera gamma [primo, ultimo) aveva stati ordinati. Inoltre, nessuno dei elementi nell'intervallo [n-esimo, last) è meno di qualsiasi degli elementi della gamma [prima, ennesima).
E sostiene di avere O (n) la complessità in media. Come funziona l'algoritmo? Non riuscivo a trovare alcuna spiegazione.
Soluzione
Si chiama un algoritmo di selezione e di Wikipedia ha una pagina decente su di esso: http: //en.wikipedia. org / wiki / Selection_algorithm
Leggi anche statistiche d'ordine: http://en.wikipedia.org/wiki/Order_statistic
Altri suggerimenti
Molto probabilmente la mediana-di-mediane algo.