18 lines
546 B
Groovy
18 lines
546 B
Groovy
def a = [] as Set
|
|
def random = new Random()
|
|
while (a.size() < 20) { a << random.nextInt(30) }
|
|
def source = a.sort()
|
|
source[0..-2].eachWithIndex { si, i -> assert si < source[i+1] }
|
|
|
|
println "${source}"
|
|
1.upto(5) {
|
|
target = random.nextInt(10) + (it - 2) * 10
|
|
print "Trial #${it}. Looking for: ${target}"
|
|
def answers = [binSearchR, binSearchI].collect { search ->
|
|
search(source, target)
|
|
}
|
|
assert answers[0] == answers[1]
|
|
println """
|
|
Answer: ${answers[0]}, : ${source[answers[0].values().iterator().next()]}"""
|
|
}
|