Skip to content

Commit fa804f7

Browse files
committed
Quick find problem.
1 parent adbee2c commit fa804f7

File tree

2 files changed

+35
-0
lines changed

2 files changed

+35
-0
lines changed

union-find/quick-find.rb

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
class QuickFind
2+
attr_reader :size, :values
3+
4+
def initialize(size)
5+
@size = size
6+
@values = Array.new(size)
7+
@values.each_with_index do |v, i|
8+
values[i] = i
9+
end
10+
end
11+
12+
def connected?(p, q)
13+
values[p] == values[q]
14+
end
15+
16+
def union(p, q)
17+
pid = values[p]
18+
qid = values[q]
19+
(0..@size).each do |i|
20+
if(values[i] == pid)
21+
values[i] = qid
22+
end
23+
end
24+
end
25+
end
26+
27+
qf = QuickFind.new(10)
28+
p qf.values
29+
qf.union(4, 3)
30+
p qf.values
31+
qf.union(9, 8)
32+
p qf.values
33+
qf.union(4, 8)
34+
p qf.values
35+

union-find/quick-union.rb

Whitespace-only changes.

0 commit comments

Comments
 (0)