Skip to content

Commit 30fbbd8

Browse files
committed
remove gen_lookup stuff; slower than recursive division
1 parent 80c8998 commit 30fbbd8

File tree

2 files changed

+2
-15
lines changed

2 files changed

+2
-15
lines changed

lib/compsci/complete_tree.rb

+2-14
Original file line numberDiff line numberDiff line change
@@ -20,22 +20,10 @@ def self.children_idx(idx, n)
2020
Array.new(n) { |i| n*idx + i + 1 }
2121
end
2222

23-
GEN = {}
24-
[2, 3, 4, 5, 6].each { |n|
25-
cursor = -1
26-
GEN[n] = Array.new(10) { |i| cursor += n**i }
27-
}
28-
29-
def self.gen_lookup(idx, n)
30-
return nil unless GEN[n]
31-
return nil unless idx <= GEN[n].last
32-
GEN[n].each.with_index { |max, level| return level if idx <= max }
33-
nil
34-
end
35-
23+
# how many levels deep is the given index?
3624
def self.gen(idx, n)
3725
return 0 if idx <= 0
38-
gen_lookup(idx, n) or gen(self.parent_idx(idx, n), n) + 1
26+
gen(self.parent_idx(idx, n), n) + 1
3927
end
4028

4129
# return generation level and sibling count at that level

sig/complete_tree.rbs

-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ module CompSci
88

99
def self.parent_idx: (Integer idx, Integer n) -> Integer
1010
def self.children_idx: (Integer idx, Integer n) -> Array[Integer]
11-
def self.gen_lookup: (Integer idx, Integer n) -> Integer
1211
def self.gen: (Integer idx, Integer n) -> Integer
1312
def self.generation: (Integer idx, Integer n) -> [Integer, Integer]
1413

0 commit comments

Comments
 (0)