Skip to content

Instantly share code, notes, and snippets.

@BrianJoyce
Created October 12, 2012 00:23
Show Gist options
  • Save BrianJoyce/3876600 to your computer and use it in GitHub Desktop.
Save BrianJoyce/3876600 to your computer and use it in GitHub Desktop.
Binary_search
def binary_search(search,array)
# binding.pry
array.sort!
@h_i ||= array.size
@m_i ||= array.size / 2
@l_i ||= 0
return @m_i if search == array[@m_i]
return -1 if @h_i - @m_i == 1
if search > array[@m_i] # top half
@l_i = @m_i
@m_i = @m_i + ((@h_i - @m_i) / 2)
elsif search < array[@m_i] # bottom half
@h_i = @m_i
@m_i = (@l_i + @h_i) / 2
end
# return @m_i = -1 if array.include?(search) == false
binary_search(search, array)
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment