Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#15

Re: Algorithmus Laufzeitverhalten Knoten im Kopf (Knobelaufg

  Alt 4. Mär 2006, 07:12
Guten Morgen.

Zitat von stoxx:
ab hier fängt die Zählung an für f
Erst durch diese Erklärung fällt mir auf, dass sich bei meiner Implementierung angrenzende Bereiche überlappen. Ich muss noch eine kleine Änderung an der abschließenden Berechnungsschleife einführen:

Delphi-Quellcode:
// ...
  // calculate result
  for i := High(seq) downto 0 do
  begin
    maxRange := rng[i];
    maxSymbol := seq[i];
    for j := i + maxRange to High(seq) do
      if (j = i) or (rng[j] > maxRange) then
      begin
        maxSymbol := seq[j];
        maxRange := rng[j];
      end;
    Result[Succ(i)] := maxSymbol;
  end;
// ...
Die als falsch eingestuften "Häufigkeitszählungen" in meinem Programm sind übrigens gerade der Schlüssel zur Umstellung der Laufzeitkomplexität auf O(n).

Schönes Wochenende

marabu
Angehängte Dateien
Dateityp: dpr demo_808.dpr (2,4 KB, 8x aufgerufen)
  Mit Zitat antworten Zitat