What is the simplest way to do a binary search on an (already) sorted NSArray
?
Some potential ways I have spotted so far include:
The use of CFArrayBSearchValues
(mentioned here) - would this work on an NSArray
?
The method indexOfObject:inSortedRange:options:usingComparator:
of NSArray
assumes the array is sorted and takes an opts
param of type NSBinarySearchingOptions
- does this mean it performs a binary search? The docs just say:
Returns the index, within a specified range, of an object compared with elements in the array using a given NSComparator block.
Write my own binary search method (something along the lines of this).
I should add that I am programming for iOS 4.3+
Thanks in advance.
1 and 2 will both work. #2 is probably easier; it certainly doesn't make sense for that method to do anything other than a binary search (if the range is above a certain size, say). You could verify on a large array that it only does a small number of comparisons.