Alternativ:
Die Zahl von in einen Binärstring umwandeln und in der Ansicht sortieren
00010111 (=23)
01000110 (=70)
01010101 (=85)
Naive Methode: Den zu suchenden Wert ebenfalls nach binär umwandeln und dann erst ein Bit, dann zwei Bit, dann drei usw in den Lookup (und exactmatch = false) geben, bis kein Treffer mehr erfolgt.
Erfordert bei 8 Bit (0-255) auch 8 Lookups, bei 32 Bit eben 32
Etwas komplizierter: Intervallschachtelung
Suche nach 40 erfolgt dann wie Folgt:
00101000 (=40)
Step 1: Volle 8 bit suchen, 00101000 => kein Treffer
Step 2: Bitanzahl halbieren, 0010____ => kein Treffer
Step 3: Bitanzahl halbieren, 00______ => Treffer
Step 4: Bitanzahl halbieren aber anhängen, 001_____ => Kein Treffer
Der letzte Treffer ist dann das richtige Dokument
Wenn b die Bitlänge ist, dann sind immer n Schritte erforderlich, wobei sich n wie Folgt berechnet 2^(n-1) = b
Bei 32 Bit, wäre n=6
Weiteres Beispiel: Suche nach 73 = 01001001
Step 1: 01001001 => kein treffer
Step 2: 0100____ => Treffer
Step 3: 010010__ => kein Treffer
Step 4: 01001___ => kein Treffer
Gruß
Roland