【发布时间】:2012-06-27 06:32:57
【问题描述】:
对(已经)排序的NSArray进行二分搜索的最简单方法是什么?
目前我发现的一些潜在方法包括:
-
CFArrayBSearchValues的使用(提到了here) - 这对NSArray有效吗? -
NSArray的方法indexOfObject:inSortedRange:options:usingComparator:假定数组已排序并采用opts类型的参数NSBinarySearchingOptions- 这是否意味着它执行二进制搜索? docs 就说:使用给定的 NSComparator 块返回一个对象在指定范围内与数组中的元素进行比较的索引。
-
编写我自己的二进制搜索方法(类似于this)。
我应该补充一点,我正在为 iOS 4.3+ 编程
提前致谢。
【问题讨论】:
-
为什么不使用 NSDictionary 呢? objectForKey: 会搜索你。
-
关于这个的几个问题 - 对于对象搜索,字典比数组有什么好处?另外,为了使用您建议的方法,我不需要知道对象的键吗?我首先在数组中搜索对象的原因是我不知道它的索引 - 如果我更改为字典实现,那么这意味着我不知道键。
标签: objective-c ios algorithm nsarray binary-search