私の問題は、txt ファイルのリストから作成される一般的なツリーの LCA を見つけることです。最も効率的な実装を探しています。データの形式は次のとおりです: Id、info、ParentId
データはいかなる方法でもソートされません。ツリーを作ろうと思ったのですが、最低でもO(nlogn)かかります。対数ベースは2ではありませんが、私が推測する子供の平均数に依存します。
代わりに、ノードをハッシュテーブルに格納すると、LCA を見つける方が O (nlogn) よりも優れています。右?宛先ノードの各親について、ソース ノードがアクセスしたかどうかを確認する必要があります (ソース ノードからルートまでを開始し、途中のすべての親をアクセス済みとしてマークすると仮定します)。 (ログイン)。親をチェックするだけなので、O(nlogn) よりも優れています。
もっと良いアイデアはありますか?