Публикации по теме 'binary-heap'
Зачем и когда использовать двоичные кучи
Есть две основные причины для использования бинарной кучи, созданной Дж. Дж. Уильямс в 1964 году для сортировки по пирамиде .
Зачем использовать двоичные кучи?
Для мгновенного доступа к наибольшему значению в случае Max Heap или к наименьшему значению в случае Min Heap . Под «мгновенным доступом» я подразумеваю постоянное время или O(1) для компьютерщиков. Это просто означает, что мы знаем, где будет значение, которое находится в корне дерева или в начале массива, в..
Очереди приоритета обучения
На прошлой неделе я написал о своем первом набеге на двоичные кучи, который можно найти здесь . Знание кучи действительно полезно при изучении очередей с приоритетом, поскольку оптимальный (но не только) способ их реализации - это куча. В посте на прошлой неделе у меня также была ссылка на ответ, который я написал, показывающий, как создать максимальную кучу в JavaScript ( здесь ), а также некоторые важные методы для реализации. В том же ответе я добавил класс очереди с приоритетом...
Вопросы по теме 'binary-heap'
двоичная куча против биномиальной кучи против кучи Фибоначчи, относительно производительности для очереди с приоритетом
Не мог бы кто-нибудь объяснить мне, как мне решить, использовать ли ту или иную реализацию кучи, среди тех, которые упомянуты в заголовке?
Я хотел бы получить ответ, который помог бы мне выбрать реализацию с точки зрения производительности...
4766 просмотров
schedule
01.11.2021
Высокопроизводительная сортировка кучи
У меня есть вектор размером более 5 миллионов, каждый раз, когда я хотел бы взять один элемент с наименьшим ключом из вектора и выполнить какой-то процесс с этим элементом. Однако при обработке этого конкретного элемента все остальные элементы в...
144 просмотров
schedule
03.11.2021
Почему эта реализация двоичной кучи медленнее, чем у Python stdlib?
Я реализовал свой собственный модуль кучи, чтобы помочь мне понять структуру данных кучи. Я понимаю, как они работают и ими управляют, но моя реализация значительно медленнее, чем стандартный модуль python heapq при предварительной сортировке кучи...
560 просмотров
schedule
21.09.2021
Снижение сложности агентных моделей
Я разрабатываю агентную модель, имитирующую рост клеточной культуры in vitro.
Я использую библиотеку MASON (Java), но полагаю, что вопрос может быть применим к различным реализациям.
По сути, мои агенты запрограммированы на деление каждые 12 +/-...
110 просмотров
schedule
11.10.2021
Что лучше - сбалансированное двоичное дерево поиска или максимальная куча для извлечения максимального элемента?
Поскольку для сбалансированного BST потребуется O(log(n)) времени, извлекается максимум (под извлечением я имею в виду как найти, так и удалить элемент Max) . С другой стороны, Max-heap также потребует O(log(n)) времени на извлечение...
189 просмотров
schedule
03.11.2021
Реализуйте итератор в двоичной куче
Я ищу способ реализовать итератор на двоичных кучах (максимальных или минимальных).
То есть, используя его функцию nextNode () в i-й раз, можно получить i-й (больший или меньший) элемент в куче.
Обратите внимание, что эта операция выполняется...
848 просмотров
schedule
16.10.2021
В чем сложность извлечения всех n элементов из кучи?
Чтобы построить кучу, часто ошибочно считают, что O (n log n) - это строгая верхняя граница, но на самом деле это O (n).
Я хочу сказать, что извлечение всех n элементов из кучи - это O (n log n), но, исходя из того, что я знаю о сложности...
125 просмотров
schedule
01.12.2021
Сложность времени для вставки 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 просмотров
schedule
07.03.2022
Как вставить в двоичную максимальную кучу, реализованную в виде двоичного дерева?
В двоичной максимальной куче, реализованной как двоичное дерево (где каждый узел хранит указатель на своего родителя, левого дочернего и правого дочерних элементов), если у вас есть указатель на корень кучи, как бы вы реализовали операцию вставки?...
4567 просмотров
schedule
13.04.2022
Найти самый популярный URL-адрес посещения за последний день, последний час или последнюю минуту?
Исходный вопрос дается файлом, содержащим URL-адрес 5 ГБ, который посещался в последний день, найдите самый частый URL-адрес. Проблема может быть решена с помощью хеш-карты для подсчета вхождений различных URL-адресов и поиска вершины k с помощью...
2917 просмотров
schedule
21.04.2022
Создание минимальной/максимальной двоичной кучи
Учитывая список неупорядоченного обхода, как лучше всего создать двоичную минимальную/максимальную кучу?
Я пытаюсь ограничиться следующими конструкциями:
Нет массива для использования в двоичной куче. Реализация основана на узлах....
8032 просмотров
schedule
12.05.2022
Всегда ли медиана бинарной максимальной кучи является конечным узлом?
Если у меня есть двоичная максимальная куча (почти полное двоичное дерево со свойством максимальной кучи), то всегда ли медиана будет конечным узлом? Я нашел несколько примеров, когда это так, но не нашел контрпримера, хотя пока этого мне...
103 просмотров
schedule
15.06.2022
Как использовать метод HeapSort после того, как пользователь уже создал кучу?
Привет, ребята, я работаю над лабораторным заданием для своего класса программирования, и нам нужно создать кучу, в которой пользователь вводит целые числа в массив, а затем отображает его, затем мы предполагаем использовать те же значения и...
419 просмотров
schedule
25.06.2022
Можно ли реализовать двоичную кучу, которая является как максимальной, так и минимальной кучей?
Я пытаюсь реализовать двоичную кучу (приоритетную очередь), которая имеет возможности как минимальной, так и максимальной кучи. Он должен иметь методы insert(value) , extractMin() и extractMax() . Методы извлечения удаляют значение из кучи и...
1347 просмотров
schedule
06.09.2022
Куча реализации приоритетной очереди?
Я пытаюсь реализовать очередь пациентов, используя кучу (с корнем меньше, чем дочерние элементы), но когда я печатаю очередь, очередь пациентов не выглядит приоритетной.
Метод вставки работает нормально, но 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 просмотров
schedule
23.03.2023
Сравнение методов построения всего 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