Пытаемся разобраться, какой из них оптимальнее использовать и реализовать.
Одним из эффективных способов реализации приоритетной очереди является пирамидальная сортировка O(n logn).
Эффективный способ реализации приоритетной очереди в Javascript?
Другой способ, которым я думал, - использовать объект js. Вставив значение приоритета (целое/число) в качестве ключа в объект js.
Учитывая, что при перечислении объекта js в ES6 мы можем получить ключи, представляющие собой целочисленные индексы (если применимо), в порядке возрастания. Вводит ли ES6 четко определенный порядок перечисления свойств объекта?
Мы можем использовать объект js с целочисленными ключами в качестве приоритетной очереди и получить время выполнения O(n). сложность Object.keys()?
const priorityQueue = {3:1,20:1,10:1,15:1,};
console.log(Object.keys(priorityQueue));
priorityQueue[5]=1;
console.log(Reflect.ownKeys(priorityQueue));
Object.keys()
на самом деле являетсяO(n log n)
. - person Bergi   schedule 08.12.2020O(n)
только для достаточно плотных целочисленных/индексированных свойств, то есть в основном для массива, но ваш примерconst priorityQueue
не выглядит очень плотным, и я не уверен, почему вы ожидаете общий случай быть. - person Bergi   schedule 08.12.2020Runtime: (n log n)
data: (n)
- person divyanshch   schedule 09.12.2020