Наткнулся на реализацию HeapSort на wikibooks использующую копирование элементов в PriorityQueue
и обратно в массив. Но ведь одно из главных преимуществ HeapSort в том что она не использует дополнительную память, а сортирует элементы "на месте".
Что это ошибка в справочнике или мое непонимание?
import java.util.PriorityQueue;
public static <E extends Comparable<? super E>> void heapsort(E[] array) {
// Java's PriorityQueue class functions as a min heap
PriorityQueue<E> heap = new PriorityQueue<E>(array.length);
// Add each array element to the heap
for (E e : array)
heap.add(e);
// Elements come off the heap in ascending order
for (int i=0; i<array.length; i++)
array[i] = heap.remove();
}
Heap sort работает конкретно с деревом, а не массивом. Если бы вы в функцию передавали уже готовое дерево, то за сортировку бы отвечала только строка
for (int i=0; i<array.length; i++)
array[i] = heap.remove();
В данной реализации предполагается, что передается массив, из которого нужно сделать дерево. Имеется ввиду, что не требуется дополнительная память, если данные представлены в виде дерева.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Добрый деньЕсть изображение, и методы paintComponent(Graphics g) и repaint()
Взял тут в руки книжку (Кен Арнольд, Джеймс Гослинг - Язык программирования JAVA), и застрял в самом начале
Слетела кодировка ,стоит utf-8,а щас просто вопросикиОткрыл файл ,чтобы просто картинки в HTML поменять и слетела кодировка,я сохранил и она на сайте...
Есть 2 сцены, первая меню а вторая сама игра, есть масcив которому даю значения через едитор, если запускаю сразу сцену игры то всё нормально...