use binary divide & conquer for select algorithm