18

(すでに)ソートされた で二分探索を行う最も簡単な方法は何NSArrayですか?

これまでに見つけたいくつかの潜在的な方法は次のとおりです。

  1. (ここCFArrayBSearchValuesで言及)の使用-これはで機能しますか?NSArray

  2. の方法は、配列がソートされていることを前提としており、型のパラメーターを取りますindexOfObject:inSortedRange:options:usingComparator:。これは、バイナリ検索を実行することを意味しますか? ドキュメントはただ言う:NSArrayoptsNSBinarySearchingOptions

    指定された NSComparator ブロックを使用して配列内の要素と比較された、指定された範囲内のオブジェクトのインデックスを返します。

  3. 独自の二分探索法を作成します (この行に沿ったもの)。

私はiOS 4.3+用にプログラミングしていることを追加する必要があります

前もって感謝します。

4

5 に答える 5

8

1と2は両方とも機能します。#2はおそらく簡単です。そのメソッドがバイナリ検索以外のことを行うことは確かに意味がありません(たとえば、範囲が特定のサイズを超えている場合)。大きな配列で、少数の比較しか行わないことを確認できます。

于 2012-06-26T00:26:52.340 に答える
3

CFArrayBSearchValues動作するはずです— <code>NSArray*はフリーダイヤルでブリッジされCFArrayRefます。

于 2012-06-26T00:16:59.240 に答える