所以,我有这个数组对象NSNumber
,它出现。 我有一些我自己的,我需要找到一个比由至少我的保证金数量更大的阵列中的一个数字。
我如何使用这个二进制搜索?
方法: indexOfObject:inSortedRange:options:usingComparator
接受对象作为参数,我没有它。 我该怎么做这个条件,但没有一个对象的二进制搜索?
所以,我有这个数组对象NSNumber
,它出现。 我有一些我自己的,我需要找到一个比由至少我的保证金数量更大的阵列中的一个数字。
我如何使用这个二进制搜索?
方法: indexOfObject:inSortedRange:options:usingComparator
接受对象作为参数,我没有它。 我该怎么做这个条件,但没有一个对象的二进制搜索?
您需要提供一个对象 - 被搜索指定项目的价值的任何对象。 只要比较知道如何提取值时, indexOfObject:inSortedRange:options:usingComparator:
会返回一个适当的值。
你需要指定NSBinarySearchingInsertionIndex
选项,以使搜索返回比以最小量的目标值大于第一项的位置,也就是你的新值插入索引。
NSNumber *target = ... // Your target number
int index = [sortedArray indexOfObject:target
inSortedRange:NSMakeRange(0, sortedArray.count)
options:NSBinarySearchingInsertionIndex
usingComparator:^(id lhs, id rhs) {
return [lhs compare:rhs]
}];