Публикации по теме 'binary-heap'


Зачем и когда использовать двоичные кучи
Есть две основные причины для использования бинарной кучи, созданной Дж. Дж. Уильямс в 1964 году для сортировки по пирамиде . Зачем использовать двоичные кучи? Для мгновенного доступа к наибольшему значению в случае Max Heap или к наименьшему значению в случае Min Heap . Под «мгновенным доступом» я подразумеваю постоянное время или O(1) для компьютерщиков. Это просто означает, что мы знаем, где будет значение, которое находится в корне дерева или в начале массива, в..

Очереди приоритета обучения
На прошлой неделе я написал о своем первом набеге на двоичные кучи, который можно найти здесь . Знание кучи действительно полезно при изучении очередей с приоритетом, поскольку оптимальный (но не только) способ их реализации - это куча. В посте на прошлой неделе у меня также была ссылка на ответ, который я написал, показывающий, как создать максимальную кучу в JavaScript ( здесь ), а также некоторые важные методы для реализации. В том же ответе я добавил класс очереди с приоритетом...

Вопросы по теме 'binary-heap'

двоичная куча против биномиальной кучи против кучи Фибоначчи, относительно производительности для очереди с приоритетом
Не мог бы кто-нибудь объяснить мне, как мне решить, использовать ли ту или иную реализацию кучи, среди тех, которые упомянуты в заголовке? Я хотел бы получить ответ, который помог бы мне выбрать реализацию с точки зрения производительности...
4766 просмотров

Высокопроизводительная сортировка кучи
У меня есть вектор размером более 5 миллионов, каждый раз, когда я хотел бы взять один элемент с наименьшим ключом из вектора и выполнить какой-то процесс с этим элементом. Однако при обработке этого конкретного элемента все остальные элементы в...
144 просмотров

Почему эта реализация двоичной кучи медленнее, чем у Python stdlib?
Я реализовал свой собственный модуль кучи, чтобы помочь мне понять структуру данных кучи. Я понимаю, как они работают и ими управляют, но моя реализация значительно медленнее, чем стандартный модуль python heapq при предварительной сортировке кучи...
560 просмотров
schedule 21.09.2021

Снижение сложности агентных моделей
Я разрабатываю агентную модель, имитирующую рост клеточной культуры in vitro. Я использую библиотеку MASON (Java), но полагаю, что вопрос может быть применим к различным реализациям. По сути, мои агенты запрограммированы на деление каждые 12 +/-...
110 просмотров

Что лучше - сбалансированное двоичное дерево поиска или максимальная куча для извлечения максимального элемента?
Поскольку для сбалансированного BST потребуется O(log(n)) времени, извлекается максимум (под извлечением я имею в виду как найти, так и удалить элемент Max) . С другой стороны, Max-heap также потребует O(log(n)) времени на извлечение...
189 просмотров

Реализуйте итератор в двоичной куче
Я ищу способ реализовать итератор на двоичных кучах (максимальных или минимальных). То есть, используя его функцию nextNode () в i-й раз, можно получить i-й (больший или меньший) элемент в куче. Обратите внимание, что эта операция выполняется...
848 просмотров
schedule 16.10.2021

В чем сложность извлечения всех n элементов из кучи?
Чтобы построить кучу, часто ошибочно считают, что O (n log n) - это строгая верхняя граница, но на самом деле это O (n). Я хочу сказать, что извлечение всех n элементов из кучи - это O (n log n), но, исходя из того, что я знаю о сложности...
125 просмотров

Сложность времени для вставки k элементов в двоичную кучу, содержащую n элементов
Какова временная сложность вставки k новых элементов в двоичную кучу, содержащую уже n элементов? У меня есть ограничение, что мне нужно вставить k элементов в 0 (k + Log n) сложности. Подсказка: используйте восходящий подход, аналогичный тому,...
1467 просмотров
schedule 22.02.2022

Почему не сложность построения двоичной кучи путем вставки O (n) во времени?
Фон Согласно Википедии и другим источникам, которые я нашел, создание двоичной кучи n элементов, начиная с пустой двоичной кучи и вставляя в нее элементы n , составляют O ( n log n ), поскольку вставка двоичной кучи выполняется за O (log...
3317 просмотров

Как вставить в двоичную максимальную кучу, реализованную в виде двоичного дерева?
В двоичной максимальной куче, реализованной как двоичное дерево (где каждый узел хранит указатель на своего родителя, левого дочернего и правого дочерних элементов), если у вас есть указатель на корень кучи, как бы вы реализовали операцию вставки?...
4567 просмотров

Найти самый популярный URL-адрес посещения за последний день, последний час или последнюю минуту?
Исходный вопрос дается файлом, содержащим URL-адрес 5 ГБ, который посещался в последний день, найдите самый частый URL-адрес. Проблема может быть решена с помощью хеш-карты для подсчета вхождений различных URL-адресов и поиска вершины k с помощью...
2917 просмотров

Создание минимальной/максимальной двоичной кучи
Учитывая список неупорядоченного обхода, как лучше всего создать двоичную минимальную/максимальную кучу? Я пытаюсь ограничиться следующими конструкциями: Нет массива для использования в двоичной куче. Реализация основана на узлах....
8032 просмотров
schedule 12.05.2022

Всегда ли медиана бинарной максимальной кучи является конечным узлом?
Если у меня есть двоичная максимальная куча (почти полное двоичное дерево со свойством максимальной кучи), то всегда ли медиана будет конечным узлом? Я нашел несколько примеров, когда это так, но не нашел контрпримера, хотя пока этого мне...
103 просмотров
schedule 15.06.2022

Как использовать метод HeapSort после того, как пользователь уже создал кучу?
Привет, ребята, я работаю над лабораторным заданием для своего класса программирования, и нам нужно создать кучу, в которой пользователь вводит целые числа в массив, а затем отображает его, затем мы предполагаем использовать те же значения и...
419 просмотров
schedule 25.06.2022

Можно ли реализовать двоичную кучу, которая является как максимальной, так и минимальной кучей?
Я пытаюсь реализовать двоичную кучу (приоритетную очередь), которая имеет возможности как минимальной, так и максимальной кучи. Он должен иметь методы insert(value) , extractMin() и extractMax() . Методы извлечения удаляют значение из кучи и...
1347 просмотров

Куча реализации приоритетной очереди?
Я пытаюсь реализовать очередь пациентов, используя кучу (с корнем меньше, чем дочерние элементы), но когда я печатаю очередь, очередь пациентов не выглядит приоритетной. Метод вставки работает нормально, но enqueue не отдает приоритет элементам?...
1533 просмотров
schedule 09.04.2023

Реализация пользовательского двоичного дерева кучи — случайное удаление узла
Я пытался решить этот вопрос. Постановка задачи немного похожа на настроенное двоичное дерево кучи, если сравнить его с определением двоичного дерева кучи в ADT. В двоичном дереве кучи вы всегда делаете deleteMax/deletetMin в зависимости от типа...
385 просмотров
schedule 03.03.2023

Почему сбалансированный BST не используется повсеместно вместо двоичной кучи в изменяемых структурах?
Мне кажется, что двоичное дерево поиска может делать все, что может двоичная куча, плюс дополнительные вещи. | | Heap | Bal. BST | --------------------------------------------- | Lookup min element | O(1) | O(1) |...
108 просмотров

Сравнение методов построения всего binayHeap из списка ключей
Читая публикацию о создании двоичной кучи. Я запутался в подходе1. Авторский подход1(O(n*log n)): Имея список ключей, создайте двоичную кучу, вставляя каждый ключ по одному. Поскольку вы начинаете со списка из одного элемента, этот...
32 просмотров
schedule 23.04.2023

Метод Heapify Down в минимальной куче
В настоящее время пытаюсь понять Min Heap с помощью Repl здесь: https://repl.it/@Stylebender/Minheap#index.js Минимальная куча имеет емкость 5. Как только я вставляю 6-й элемент (50), мы меняем местами элементы с индексом 0 и индексом 5 и...
179 просмотров
schedule 26.05.2023