It is a bit doozy, but its definitely a basis for other algorithms!
Important question about the dataset: is it ordered? If yes, you will have great advantages!
Pseudo Code
search(arr, lo, hi, n);
do
m = floor(lo + (hi - lo) / 2);
v = arr[m]
if v = n return true
else if v > n
hi = m
else
lo = m+1
while lo < hi
return false
Given two crystal balls that will break if dropped from high enough distance,
determine the exact spot in which it will break in the most optimized way.