私は、データストリームで最も頻繁に発生する「k」個の要素をいつでも通知する最も効率的な(ストリーミング??)アルゴリズムを探してきました。この投稿:「分割統治」データストリームアルゴリズムに興味を持ちました。
たとえば、数字があると仮定します:(4,3,5,1,6,2,4,3,3,8,9,1)そして、最も頻繁に発生する3つの数字(たとえば)をクエリした後、答えとして(3,4,1)を取得します。
オンラインで検索しようとしましたが、アプローチを提供し、それが最良であると言う場所を見つけることができませんでした。些細な解決策は、ヒープまたはバランスの取れたバイナリツリーを使用することですが、より良い方法があると思い、それがどこかに文書化されているかどうかを知りたかったのです。
編集:私は、何らかの方法でデータの分布に依存する承認アルゴリズム(多くが検索結果にポップアップする)とは対照的に、常に正しい答えを与えるアルゴリズムを探しています