Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

Re: Ist x in Array enthalten ?

  Alt 1. Feb 2005, 18:09
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;
Andreas
  Mit Zitat antworten Zitat