From 3b1db1ebf165a461a994bd0b5ea197d613e0d919 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20=C4=8Cerm=C3=A1k?= <45594031+dcermak@users.noreply.github.com> Date: Mon, 29 Aug 2022 19:47:58 +0200 Subject: [PATCH] chore: Drop lazy priority queue (#64) * Switch from unmaintained lazy_priority_queue to pairing_heap * Remove not needed require lazy_priority_queue https://github.com/matiasbattocchia/lazy_priority_queue is unfortunately unmaintained. https://github.com/mhib/pairing_heap is a drop in replacement, that is maintained and faster in benchmarks --- lib/rgl/bellman_ford.rb | 2 -- lib/rgl/dijkstra.rb | 4 ++-- rgl.gemspec | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/lib/rgl/bellman_ford.rb b/lib/rgl/bellman_ford.rb index 83df740..6ddb221 100644 --- a/lib/rgl/bellman_ford.rb +++ b/lib/rgl/bellman_ford.rb @@ -2,8 +2,6 @@ require 'rgl/edge_properties_map' require 'rgl/path_builder' -require 'lazy_priority_queue' - module RGL # Bellman-Ford shortest paths algorithm has the following event points: diff --git a/lib/rgl/dijkstra.rb b/lib/rgl/dijkstra.rb index 1c68158..3cfad14 100644 --- a/lib/rgl/dijkstra.rb +++ b/lib/rgl/dijkstra.rb @@ -2,7 +2,7 @@ require 'rgl/edge_properties_map' require 'rgl/path_builder' -require 'lazy_priority_queue' +require 'pairing_heap' module RGL @@ -54,7 +54,7 @@ def find_shortest_paths(source) def init(source) @visitor.set_source(source) - @queue = MinPriorityQueue.new + @queue = PairingHeap::MinPriorityQueue.new @queue.push(source, 0) end diff --git a/rgl.gemspec b/rgl.gemspec index 2833f05..e9cd154 100644 --- a/rgl.gemspec +++ b/rgl.gemspec @@ -11,7 +11,7 @@ Gem::Specification.new do |s| #### Dependencies and requirements. s.add_dependency 'stream', '~> 0.5.3' - s.add_dependency 'lazy_priority_queue', '~> 0.1.0' + s.add_dependency 'pairing_heap', '>= 0.3.0' s.add_dependency 'rexml', '~> 3.2', '>= 3.2.4' s.add_development_dependency 'rake'