私はアイテムのリストと比較関数f(item1、item2)を持っています。これはブール値を返します。比較機能に基づいてアイテムを効率的にグループ化する方法はありますか?
同じグループのすべてのアイテムが条件f(itemi、itemj)=== trueを満たすように、これらのアイテムからグループを生成したいとします。
アイテムはいくつかのグループに含めることができます。グループの最小サイズはありません。
私はそれのためのJavaScript(または他の言語)で効率的なアルゴリズムを記述しようとしています。私はそれがかなり簡単だと思ったが、私は1日後にまだそれになっている...
すべてのポインタが高く評価される!
(それは場合に役立ちます私の項目の配列の最大サイズは、1000年である)
私はいろいろ試しましたが、実装に失敗しました。たとえば、すべての組み合わせを使用して0と1の行列を作成し、列と行を移動して1の正方行列を探しますが、実装するのは簡単ではありません。もう1つは各列(itemiにすべて一致)で実行し、ツリー内にファッションのようにグループを生成することでした。私の主な問題は、問題に取り組むための明確な方法が実際にはなく、よく知られているタイプの問題/アルゴリズムに対応することを望んでいたことです。 – Thomas
まず、 'f(itemi、itemj)=== f(itemj、itemi)'ですか?そして、はいの場合は、項目が複数のグループに含まれるという例がありますか? – Thomas
いいえ、必ずしも – Thomas