私はTDictionaryを持っています。それは大規模なループでいっぱいです。ループが終了すると、スコア(整数)が多い10個のキー(文字列)を取得する必要があります。これを達成する最も効率的な方法は何でしょうか?ジェネリックコレクションのトップダウンを反復する(TDictionary)
NSArray *top_words_sorted_array = [top_words_dictionary keysSortedByValueUsingSelector:@selector(compare:)];
し、新しいソートされた配列を反復:Objective-Cの(ココア)私がそれを行うには
。 Delphiでどうすればいいですか?
Davidありがとう!元のObj-Cコードと同じくらい効率的です。辞書は大きくなりますが、このコードの使用は頻繁ではありません。 –
辞書が本当に大きい場合は、値のリスト全体を並べ替えることはできません。あなたは*部分的な並べ替え*が必要です。 Wikipediaの* select algorithm *の項目を参照してください。[最小または最大のk要素を選択する](http://en.wikipedia.org/wiki/Selection_algorithm#Selecting_k_smallest_or_largest_elements) –
TArrayにはいつSortメソッドがありますか? –