red-black-tree 0.1.9 → 0.1.10
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/CHANGELOG.md +4 -0
- data/README.md +14 -14
- data/lib/red-black-tree.rb +3 -2
- data/lib/red_black_tree/version.rb +1 -1
- 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: ef532dd5b5da89ad3dbf780bba52824ecdece998306dc89d4742ddd7b9444a1b
|
|
4
|
+
data.tar.gz: dee8cd6cb0ebf9b837519d9131790590e6fcab86c5fe45af0d28cb603d53f224
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 75b0530cb685fb3cfcd1fa8435a8329e97df9fbd49e5e7063b5de0c34cbef24c453dc5d22481c8ba4cafe475f48ea3ccafa37788ef92b066c667882ce860130c
|
|
7
|
+
data.tar.gz: 8fdf009768bfb1551f2f4954ddab323c12b1d76d438c0be8b2bbb4ffe10816de58513e2642649ad78b25b1ea931a03a29a82b3d2df6a3dfeae70997158fe9183
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
|
@@ -156,34 +156,34 @@ Benchmark.ips do |x|
|
|
|
156
156
|
x.compare!
|
|
157
157
|
end
|
|
158
158
|
|
|
159
|
-
#=> ruby
|
|
159
|
+
#=> ruby 4.0.3 (2026-04-21 revision 85ddef263a) +YJIT +PRISM [arm64-darwin23]
|
|
160
160
|
#=> Warming up --------------------------------------
|
|
161
161
|
#=> RedBlackTree#search 3.000 i/100ms
|
|
162
162
|
#=> Array#find (gradual sort)
|
|
163
163
|
#=> 1.000 i/100ms
|
|
164
164
|
#=> Array#find (single sort)
|
|
165
|
-
#=>
|
|
165
|
+
#=> 79.000 i/100ms
|
|
166
166
|
#=> Array#bsearch (gradual sort)
|
|
167
167
|
#=> 1.000 i/100ms
|
|
168
168
|
#=> Array#bsearch (single sort)
|
|
169
|
-
#=>
|
|
169
|
+
#=> 87.000 i/100ms
|
|
170
170
|
#=> Calculating -------------------------------------
|
|
171
|
-
#=> RedBlackTree#search
|
|
171
|
+
#=> RedBlackTree#search 32.188 (± 6.2%) i/s (31.07 ms/i) - 162.000 in 5.051229s
|
|
172
172
|
#=> Array#find (gradual sort)
|
|
173
|
-
#=> 0.
|
|
173
|
+
#=> 0.207 (± 0.0%) i/s (4.83 s/i) - 2.000 in 9.651532s
|
|
174
174
|
#=> Array#find (single sort)
|
|
175
|
-
#=>
|
|
175
|
+
#=> 809.310 (± 3.8%) i/s (1.24 ms/i) - 4.108k in 5.084020s
|
|
176
176
|
#=> Array#bsearch (gradual sort)
|
|
177
|
-
#=> 0.
|
|
177
|
+
#=> 0.205 (± 0.0%) i/s (4.88 s/i) - 2.000 in 9.753754s
|
|
178
178
|
#=> Array#bsearch (single sort)
|
|
179
|
-
#=>
|
|
180
|
-
#=>
|
|
179
|
+
#=> 857.497 (± 1.0%) i/s (1.17 ms/i) - 4.350k in 5.073414s
|
|
180
|
+
#=>
|
|
181
181
|
#=> Comparison:
|
|
182
|
-
#=>
|
|
183
|
-
#=>
|
|
184
|
-
#=>
|
|
185
|
-
#=> Array#
|
|
186
|
-
#=>
|
|
182
|
+
#=> Array#bsearch (single sort): 857.5 i/s
|
|
183
|
+
#=> Array#find (single sort): 809.3 i/s - 1.06x slower
|
|
184
|
+
#=> RedBlackTree#search: 32.2 i/s - 26.64x slower
|
|
185
|
+
#=> Array#find (gradual sort): 0.2 i/s - 4138.00x slower
|
|
186
|
+
#=> Array#bsearch (gradual sort): 0.2 i/s - 4181.79x slower
|
|
187
187
|
```
|
|
188
188
|
|
|
189
189
|
## WIP Features
|
data/lib/red-black-tree.rb
CHANGED
|
@@ -135,7 +135,9 @@ class RedBlackTree
|
|
|
135
135
|
|
|
136
136
|
if node.children_are_valid?
|
|
137
137
|
delete_node_with_two_children! node
|
|
138
|
-
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
if node.single_child_is_valid?
|
|
139
141
|
delete_node_with_one_child! node
|
|
140
142
|
elsif node.children_are_leaves?
|
|
141
143
|
delete_leaf_node! node, original_node
|
|
@@ -348,7 +350,6 @@ class RedBlackTree
|
|
|
348
350
|
predecessor = predecessor.right until predecessor.right.leaf?
|
|
349
351
|
node.swap_colour_with! predecessor
|
|
350
352
|
node.swap_position_with! predecessor
|
|
351
|
-
node.swap_position_with! LeafNode.new
|
|
352
353
|
|
|
353
354
|
@root = predecessor if is_root
|
|
354
355
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: red-black-tree
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.10
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Joshua Young
|
|
@@ -49,7 +49,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
49
49
|
- !ruby/object:Gem::Version
|
|
50
50
|
version: '0'
|
|
51
51
|
requirements: []
|
|
52
|
-
rubygems_version: 4.0.
|
|
52
|
+
rubygems_version: 4.0.10
|
|
53
53
|
specification_version: 4
|
|
54
54
|
summary: Red-Black Tree Data Structure for Ruby
|
|
55
55
|
test_files: []
|