Einzelnen Beitrag anzeigen

Oxmyx

Registriert seit: 21. Sep 2004
499 Beiträge
 
#6

Re: Ist x in Array enthalten ?

  Alt 1. Feb 2005, 18:18
Zitat von shmia:
Zitat von Neutral General:
Ich muss schnell (!) herausfinden ob ein Array einen bestimmten Wert beinhaltet.
normalerweise geht das ja mit for-schleifen aber das ist zuuu langsam ...
Und sowas wie
if 50 in IntegerArray then ... scheint ja nicht zu gehen
Mengenoperation sind auf Mengen mit max 256 Elementen beschränkt. (Also Mengen kannst du vergessen)
Das Suchen in einem Array lässt sich massiv Beschleunigen, wenn man mit Zeigern arbeitet.
Delphi-Quellcode:
// ungetestet, da direkt hingeschrieben
function SearchArray(const a:array of Integer; sv:integer):Integer;
var
   p : ^integer;
begin
   p := @a[Low(a)];
   for i := Low(a) to High(a) do
   begin
      if p^ = sv then
      begin
         Result := i;
         Exit;
      end;
      Inc(p);
   end;
   Result := -1; // nix gfunden
end;
Brauchst du gar nicht machen, das macht der Delphi-Compiler in schnellen Schleifen automatisch.
  Mit Zitat antworten Zitat