Saltar al contenido

Ordenar parcialmente un array en orden descendente usando Java Stream API

Si encuentras algo que te causa duda puedes dejarlo en los comentarios y haremos todo lo necesario de ayudarte lo mas rápido que podamos.

Solución:

Aunque el código es más largo que la respuesta aceptada, ordena mucho menos: para matrices grandes, esto será importante:

private static int[] partiallySorted(int[] input, int bound) 
    int[] result = new int[input.length];

    int i = -1;
    PriorityQueue pq = new PriorityQueue<>(bound, Comparator.naturalOrder());
    for (int x : input) 
        pq.add(x);
        if (pq.size() > bound) 
            int el = pq.poll();
            result[bound + ++i] = el;
        
    

    while (!pq.isEmpty()) 
        result[--bound] = pq.poll();
    

    return result;

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *