2008/01/20(日)分布数え

大量のデータを処理するときに使う手法の1つです.データを一読し,データの出現回数を数えてしまうものです.

これを利用したソートの一種としてバケットソートがあるのですが,データとして取りうる値の数だけメモリを用意する必要があることが欠点になります.が,取りうる値の種類が16bit程度であれば何も気にせずにメモリを確保してしまえばいいだけです.

というわけで,最近ちょっとした画像?処理をしていたのですが,さすがに早いですね.頻度分析というか特徴抽出というかそういう内容だったのですが,アルゴリズム通りに実装すると数日かかりそうな処理が1-2分で終わりました.

問題に対して制限をかけることは重要ですね.