Einzelnen Beitrag anzeigen

Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
885 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Algorithmen um Listen abzugleichen

  Alt 7. Sep 2024, 08: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.
The angels have the phone box.

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