Einzelnen Beitrag anzeigen

Benutzerbild von Gausi
Gausi
Online

Registriert seit: 17. Jul 2005
900 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.
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 08:20 Uhr)
  Mit Zitat antworten Zitat