2011-08-11 5 views

答えて

9

アイデアは簡単です。常にソートされるべき大きな配列があるとします。要素を1つでも変更または挿入すると、配列を変更する必要があります。並べ替えにはコストがかかります。

メソッド-[NSArray sortedArrayHint]は、わずかな変更のみが行われた場合に同じ配列の並べ替えを高速化するために使用できるプライベート内部データを取得するために、すでにソートされた配列で呼び出すことができます。

使い方は簡単です:

  1. -[NSArray sortedArrayHint]を使用して、元のソートされた配列からヒントを取得し、保存します。
  2. 小さな変更後。格納されたヒントを用いて-[NSArray sortedArrayUsingFunction:context:hint:]を使用してリゾートに戻す。
  3. 大規模な変更後。 -[NSArray sortedArrayUsingFunction:context:]を使用して新しいヒントを取得してください。

小さな、または大きな変化とは、計測器で計測する必要があるものです。

ソートされた配列のバイナリ検索を使用するソートされた挿入の場合は、NSArrayNSMutabelArrayで独自のカテゴリを使用する方が効果的であることがわかったので、これを使用しません。私のコードはここにオープンソースとして提供されています:https://github.com/Jayway/CWFoundation

+0

あなたの答えは私に大きな助けとなっています。 –

+0

たとえば、ソースコードを表示できますか?してください.. –

+0

スピードアップするために "sortedArrayHint"を使用する理由はありますか? –

関連する問題