Мне нужно использовать приоритетную очередь в моем коде Python и:
- ищу любые быстрые реализации для очередей с приоритетами
- оптимально, я бы хотел, чтобы очередь была общей (то есть хорошо работала для любого объекта с указанным оператором сравнения).
В поисках чего-то эффективного я наткнулся на heapq, но:
- Я ищу что-то более быстрое, чем
heapq
, которое реализовано на нативном Python, поэтому оно не быстрое. - Это выглядит хорошо, но, кажется, указано только для целых чисел. Я предполагаю, что он работает с любыми объектами, у которых есть операторы сравнения, но он не определяет, какие операторы сравнения ему нужны.
- Обновление: Повторяя сравнение в
heapq
, я могу либо использовать(priority, object)
, как предлагает Чарли Мартин, либо просто реализовать__cmp__
для моего объекта.