Skip to content

Instantly share code, notes, and snippets.

@raa0121
Created August 5, 2012 06:44
Show Gist options
  • Save raa0121/3262444 to your computer and use it in GitHub Desktop.
Save raa0121/3262444 to your computer and use it in GitHub Desktop.
二分探索(出来損ない)
def bnsearch (*array,&block)
low = 0
up = array.length - 1
while(low <= up)
mid = (low + up) / 2
if (array[mid] <=> block.(array[mid])) == 0
return array[mid]
else if (array[mid] <=> block(array[mid])) == -1
low = mid + 1
else
up = mid - 1
end
end
return nil
end
bnsearch([*1..10]){|x| x == 5}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment