Einzelnen Beitrag anzeigen

Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
905 Beiträge
 
Delphi 12 Athens
 
#4

AW: Algorithmen um Listen abzugleichen

  Alt 7. Sep 2024, 07:08
Einfach so runtergeschrieben:
Delphi-Quellcode:
function TestListIsValid(TestListe, ReferenzListe: TSomeList): boolean;
var
  idxR, idxT: Integer;
begin
  idxR := 0;
  idxT := 0;

  // Hauptschleife: Die Testliste durchgehen
  while (idxT <= TestListe.Count - 1) and (idxR <= ReferenzListe.Count - 1) do begin
    // nächste Übereinstimmung in der Referenzliste suchen
    while (TestListe[idxT] <> ReferenzListe[idxR]) and (idxR < ReferenzListe.Count - 1) do
      inc(idxR);

    if TestListe[idxT] = ReferenzListe[idxR] then begin
      // Übereinstimmung gefunden, in beiden Listen eins weiter gehen
      inc(idxT);
      inc(idxR);
    end;
  end;

  // Die Testliste passt, wenn man die Testliste komplett durchlaufen hat.
  Result := idxT = TestListe.Count;
end;
Laufzeit: Linear in der Länge der Listen.
Being smart will count for nothing if you don't make the world better. You have to use your smarts to count for something, to serve life, not death.

Geändert von Gausi ( 7. Sep 2024 um 07:20 Uhr)
  Mit Zitat antworten Zitat