binary search: recursive & non-recursive