search all divides total no. of records into half and then searches for the desired record. So when there'll be 101 records, internally search all will divide them into either 50:51 or 51:50 and will try to search for the records. however, if the size of all the records is less then the page size, its better to use search then search all.
when you perform search all, first thing you need to ensure is array or table must be sorted.
Now when number of record is even then it checks which is the middle one, i.e. half of the total number. if 100 then 50th record is taken into care then it performs binary search.
Where as when say number of element is 101 then again it will take half of 101, and which is 50 (integral), then it will perform binary search, where first key that is checked is the 50th element.
Hope i have able to clear out your doubt.
If you have any concrens let us know...and correct me if i am wrong.