AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Stringlist und tobject zum Xten mal
Thema durchsuchen
Ansicht
Themen-Optionen

Stringlist und tobject zum Xten mal

Ein Thema von friedemann2009 · begonnen am 6. Mai 2011 · letzter Beitrag vom 7. Mai 2011
Antwort Antwort
Seite 2 von 2     12   
FredlFesl

Registriert seit: 19. Apr 2011
293 Beiträge
 
Delphi 2009 Enterprise
 
#11

AW: Stringlist und tobject zum Xten mal

  Alt 7. Mai 2011, 09:43
So eine TStringlist ist schon sehr brauchbar und praktisch. Langsamer als ein Array ist sie eigentlich nicht, wenn man davon absieht, das beim Einfügen ein wenig Speicheroverhead anfällt.

Die normale Vorgehensweise wäre:
Daten in eine TStringList schreiben, sortieren, die obersten 5 Elemente nehmen.

Du kannst dir einen Algorithmus schreiben, der ein wenig schneller ist, so z.B.:

Delphi-Quellcode:
Const
  MaxCount = 5;

Var
  i, j, n : Integer;
  max : Array [1..MaxCount] Of Integer;

begin
  n := 0;
  for i := 1 to 5 do max[i] := -maxint;

  for I := 0 to MyList.Count-1 do
    for j := 1 to 5 do
      if max[j] < MyList[i] then begin
        move (max[j], max[j + 1], (Length(max) - j) * SizeOf(max[1]));
        max[j] := MyList[i];
        break;
      end;
end;
Nachteil: Wenn MaxConst mal steigt, wird dier Algorithmus doch wieder langsamer. Nun könnte man dann die Suche in Max durch eine Binärsuche ersetzen, aber die widerum ist suboptimal, wenn MaxConst klein ist.
Das Bild hängt schief.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz