1 #!/usr/local/bin/ruby
2 # encoding: utf-8
3 list = (1..10).to_a
4
5 def bi_search(n, list)
6 low = 0
7 high = list.length-1
8 while low <= high
9 mid = low + (high - low)/2
10 mid_value = list[mid]
11 if n > mid_value
12 low = mid + 1
13 elsif n < mid_value
14 high = mid - 1
15 else
16 return mid
17 end
18 end
19 end
20
21 list.each { |i| print "#{i}: #{bi_search(i, list)}, "}
No comments:
Post a Comment