pairing_heap 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +5 -4
- data/lib/pairing_heap/version.rb +1 -1
- data/lib/pairing_heap.rb +3 -6
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5c613ce9a9caad4430ef201edb734809f647c31c4d55201be5a5a7db7d5fa45d
|
4
|
+
data.tar.gz: 8699200563407c193754f5bd76a345c6a6359dff22c8de4b7dda69fdb8438f4e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 744cb71f43c43a9f767a7d4ca7e3ce644eadb17af658d8877eba5e688cdeb2ccf53371218f2ce21022b3c32621db45c213485604354e20a8d14dfae9a3e7ee23
|
7
|
+
data.tar.gz: e358f76ea6b2fc5932118d0ae053c01c53fddf4b6dc1f269a4645c6676ca5a7ff1e3cb4ee976bd2490577dae62388beaac668c9a45706b94e961aba983cf56d6
|
data/README.md
CHANGED
@@ -835,11 +835,11 @@ Heaps that support change_priority operation use it. Heaps that do not support i
|
|
835
835
|
</tr>
|
836
836
|
<tr>
|
837
837
|
<td>pairing_heap (PairingHeap)</td>
|
838
|
-
<td>1.
|
838
|
+
<td>1.209x slower</td>
|
839
839
|
</tr>
|
840
840
|
<tr>
|
841
841
|
<td>rb_heap</td>
|
842
|
-
<td>1.
|
842
|
+
<td>1.954x slower</td>
|
843
843
|
</tr>
|
844
844
|
<tr>
|
845
845
|
<td>lazy_priority_queue</td>
|
@@ -889,7 +889,7 @@ Heaps that support change_priority operation use it. Heaps that do not support i
|
|
889
889
|
</tr>
|
890
890
|
<tr>
|
891
891
|
<td>pairing_heap (PairingHeap)</td>
|
892
|
-
<td>1.
|
892
|
+
<td>1.296x slower</td>
|
893
893
|
</tr>
|
894
894
|
<tr>
|
895
895
|
<td>lazy_priority_queue</td>
|
@@ -897,7 +897,7 @@ Heaps that support change_priority operation use it. Heaps that do not support i
|
|
897
897
|
</tr>
|
898
898
|
<tr>
|
899
899
|
<td>rb_heap</td>
|
900
|
-
<td>1.
|
900
|
+
<td>1.710x slower</td>
|
901
901
|
</tr>
|
902
902
|
<tr>
|
903
903
|
<td>Fibonacci</td>
|
@@ -931,6 +931,7 @@ Heaps that support change_priority operation use it. Heaps that do not support i
|
|
931
931
|
<td>2.044x slower</td>
|
932
932
|
</tr>
|
933
933
|
</table>
|
934
|
+
|
934
935
|
## Development
|
935
936
|
|
936
937
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
data/lib/pairing_heap/version.rb
CHANGED
data/lib/pairing_heap.rb
CHANGED
@@ -218,12 +218,11 @@ module PairingHeap
|
|
218
218
|
|
219
219
|
class SimplePairingHeap
|
220
220
|
class Node
|
221
|
-
attr_accessor :elem, :priority, :subheaps, :
|
222
|
-
def initialize(elem, priority, subheaps,
|
221
|
+
attr_accessor :elem, :priority, :subheaps, :next_sibling
|
222
|
+
def initialize(elem, priority, subheaps, next_sibling)
|
223
223
|
@elem = elem
|
224
224
|
@priority = priority
|
225
225
|
@subheaps = subheaps
|
226
|
-
@parent = parent
|
227
226
|
@next_sibling = next_sibling
|
228
227
|
end
|
229
228
|
end
|
@@ -243,7 +242,7 @@ module PairingHeap
|
|
243
242
|
# @raise [ArgumentError] if the element is already in the heap
|
244
243
|
# @return [PairingHeap]
|
245
244
|
def push(elem, priority)
|
246
|
-
node = Node.new(elem, priority, nil, nil
|
245
|
+
node = Node.new(elem, priority, nil, nil)
|
247
246
|
@root = meld(@root, node)
|
248
247
|
@size += 1
|
249
248
|
self
|
@@ -291,7 +290,6 @@ module PairingHeap
|
|
291
290
|
elem = @root.elem
|
292
291
|
@root = merge_pairs(@root.subheaps)
|
293
292
|
if @root
|
294
|
-
@root.parent = nil
|
295
293
|
@root.next_sibling = nil
|
296
294
|
end
|
297
295
|
elem
|
@@ -320,7 +318,6 @@ module PairingHeap
|
|
320
318
|
end
|
321
319
|
child.next_sibling = parent.subheaps
|
322
320
|
parent.subheaps = child
|
323
|
-
child.parent = parent
|
324
321
|
parent
|
325
322
|
end
|
326
323
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pairing_heap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marcin Henryk Bartkowiak
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-02-
|
11
|
+
date: 2022-02-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|