ホームページ > バックエンド開発 > C++ > 膨大なリストを効率的に比較して矛盾を見つけるにはどうすればよいですか?

膨大なリストを効率的に比較して矛盾を見つけるにはどうすればよいですか?

Linda Hamilton
リリース: 2025-01-14 20:56:44
オリジナル
822 人が閲覧しました

How Can I Efficiently Compare Massive Lists to Find Discrepancies?

大きなリストを比較して相違点を見つける効率的な方法

Except メソッドは、非常に大きな汎用リストの差分比較を扱う場合に最適です。この方法は、この記事で説明されている LINQ クエリよりもはるかに効率的です (時間計算量は O(N * M))。

Except メソッドを使用する

Except メソッドは、最初のリストの要素のうち 2 番目のリストには存在しない要素を含む新しいリストを返します。両方のリストでこのメソッドを使用して、2 つの新しいリストを取得します:

<code>var firstNotSecond = list1.Except(list2).ToList();
var secondNotFirst = list2.Except(list1).ToList();</code>
ログイン後にコピー

この方法の時間計算量は O(N M) で、前の方法よりも大幅に高速です。

結果を結合

2 つのリストが同一かどうかを判断するには、2 つの結果リストをマージします。

<code>return !firstNotSecond.Any() && !secondNotFirst.Any();</code>
ログイン後にコピー

繰り返し要素に関する注意事項

元のコードとは異なり、Except メソッドはリスト内の重複要素を 1 回だけ報告します。たとえば、list1 に [1, 2, 2, 2, 3] が含まれ、list2 に [1] が含まれる場合、Except メソッドを使用すると、「list1 にはあるが list2 には含まれない要素」の結果は [2, 3] になります。 ] ですが、元のコードは [2, 2, 2, 3] を報告します。

以上が膨大なリストを効率的に比較して矛盾を見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート