Einzelnen Beitrag anzeigen

Furtbichler
(Gast)

n/a Beiträge
 
#14

AW: Flottes Hash-Verfahren

  Alt 19. Jul 2013, 04:55
Beim Hashen von Strings ist ein ELF-Hash viel schneller als CRC. Er erzeugt bei kurzen Strings auch nicht mehr Kollisionen (bei meinen Versuchen)

Delphi-Quellcode:
Function HashFromStr(Const Value: String): Cardinal; // ELF-Hash
Var
   i: Integer;
   x: Cardinal;
Begin
   Result := 0;
   For i := 1 To Length(Value) Do Begin
     Result := (Result Shl 4) + Ord(Value[i]);
     x := Result And $F0000000;
     If (x <> 0) Then
       Result := Result Xor (x Shr 24);
     Result := Result And (Not x);
   End;
End;
  Mit Zitat antworten Zitat