add binary_search for both recursion and iteration