Sto cercando un algoritmo efficiente per trovare il kesimo elemento minimo in una matrice non ordinata di n elementi, dove 1 <= k <= n
. La cosa ovvia è ordinare prima l'array, quindi selezionare l'elemento k'th, che si tradurrà in un tempo di esecuzione di O(n * log(n))
Ma immagino che possa essere fatto in un modo più efficiente, dal momento che l'ordinamento dell'array sembra fare " troppo". Ad esempio, per k = 1 l'attività è trovare il minimo dell'array, che può essere fatto in O(n)
.
Qualcuno conosce un algoritmo migliore per k > = 2?