Heim > Backend-Entwicklung > C++ > Wie kann ich umfangreiche Listen effizient vergleichen, um Diskrepanzen zu finden?

Wie kann ich umfangreiche Listen effizient vergleichen, um Diskrepanzen zu finden?

Linda Hamilton
Freigeben: 2025-01-14 20:56:44
Original
822 Leute haben es durchsucht

How Can I Efficiently Compare Massive Lists to Find Discrepancies?

Effiziente Möglichkeit, große Listen zu vergleichen, um Unterschiede zu finden

Die Except-Methode ist die beste Wahl, wenn es um differenzielle Vergleiche sehr großer generischer Listen geht. Diese Methode ist viel effizienter als die im Artikel bereitgestellte LINQ-Abfrage (Zeitkomplexität beträgt O(N * M)).

Except-Methode verwenden

Die Methode

Except gibt eine neue Liste zurück, die Elemente aus der ersten Liste enthält, die in der zweiten Liste nicht vorhanden sind. Verwenden Sie diese Methode mit beiden Listen, um zwei neue Listen zu erhalten:

<code>var firstNotSecond = list1.Except(list2).ToList();
var secondNotFirst = list2.Except(list1).ToList();</code>
Nach dem Login kopieren

Die Zeitkomplexität dieser Methode beträgt O(N M), was deutlich schneller ist als die vorherige Methode.

Ergebnisse zusammenführen

Um festzustellen, ob zwei Listen identisch sind, können Sie die beiden Ergebnislisten zusammenführen:

<code>return !firstNotSecond.Any() && !secondNotFirst.Any();</code>
Nach dem Login kopieren

Hinweise zu sich wiederholenden Elementen

Im Gegensatz zum Originalcode meldet die Except-Methode doppelte Elemente in der Liste nur einmal. Wenn beispielsweise Liste1 [1, 2, 2, 2, 3] und Liste2 [1] enthält, lautet das Ergebnis von „Elemente in Liste1, aber nicht in Liste2“ bei Verwendung der Except-Methode [2, 3 ] , während der ursprüngliche Code [2, 2, 2, 3] melden würde.

Das obige ist der detaillierte Inhalt vonWie kann ich umfangreiche Listen effizient vergleichen, um Diskrepanzen zu finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage