Там используется приоритетная очередь PriorityQueue. В конструкторе по умолчанию используется natural ordering или сортировка по возрастанию, если по-нашему. Следовательно в каком бы порядке в эту очередь не делать ставки head будет равен минимальному элементу. А так как размер кучи k, то наибольший k элемент массива. P.s если, например, создать очередь и добавить элементы 2, 3, 1 PriorityQueue<Integer> prior = new PriorityQueue<>(); prior.add(2); prior.add(3); prior.add(1); то System.out.println(prior) - выведет [1, 3, 2] а последовательный вызов poll() - 1, 2, 3 while(!prior.isEmpty()){ System.out.print(prior.poll()); }
Там используется приоритетная очередь PriorityQueue. В конструкторе по умолчанию используется natural ordering или сортировка по возрастанию, если по-нашему. Следовательно в каком бы порядке в эту очередь не делать ставки head будет равен минимальному элементу. А так как размер кучи k, то наибольший k элемент массива.
P.s если, например, создать очередь и добавить элементы 2, 3, 1
PriorityQueue<Integer> prior = new PriorityQueue<>();prior.add(2);
prior.add(3);
prior.add(1);
то
System.out.println(prior)- выведет [1, 3, 2]а последовательный вызов poll() - 1, 2, 3
while(!prior.isEmpty()){System.
out.print(prior.poll());}