2〜5個の「ファイル」(実際には2〜5セットのデータベース行ですが、同様の概念)を比較する関数を作成する必要がありますが、その方法がわかりません。結果の差分は、2〜5個のファイルを並べて表示する必要があります。出力には、追加、削除、変更、および変更されていない行と、各ファイルの列が表示されます。
複雑さを低く抑えるために、行をトラバースするにはどのアルゴリズムを使用する必要がありますか?ファイルあたりの行数は10,000未満です。合計データサイズはメガバイトの範囲であるため、おそらく外部マージは必要ありません。もちろん、シンプルで読みやすいコードもいいでしょうが、必須ではありません。
編集:ファイルは未知のソースから派生している可能性があり、他の1〜4個のファイルと比較できる「オリジナル」はありません。すべてのファイルは、何らかの方法で他のファイルと比較する必要があります。
編集2:私、またはむしろ私の同僚は、出力順序が無関係であるため、コンテンツがソートされる可能性があることに気づきました。このソリューションは、アプリケーションのこの部分に追加のドメイン知識を使用することを意味しますが、diffの複雑さはO(N)であり、コードはそれほど複雑ではありません。この解決策は単純であり、バウンティを閉じるときにこの編集に対する回答は無視します。しかし、私は将来の参考のために私自身の質問に答えます。