def sortArr(arr)
1.upto(arr.length-1) do |i|
(arr.length-i).times do |j|
if arr[j] > arr[j+1]
arr[j],arr[j+1] = arr[j+1],arr[j]
end
end
end
return arr
end
def getIndex(arr,num,s=0,e=arr.size)
if s > e
return -1
elsif s == e
return arr[s] == num ? s : -1
end
cIndex = 0
current = 0
if (e +1 - s) % 2 == 0
cIndex = (s+e)/2
current = arr[cIndex]
else
cIndex = (s+e)/2+1
current = arr[cIndex]
end
if current == num
return arr.index(current)
else
if current > num
return getIndex(arr,num,s,(cIndex-1))
else
return getIndex(arr,num,(cIndex+1),e)
end
end
end
number = 9
arr = [1,4,5,7,9,2,4,6,8,0,4,10]
index = getIndex(sortArr(arr),number)
puts "#{number} 在数组中的索引 => #{index}"