Exact Searching
The bitap algorithm for exact string searching, in full generality, looks like this when implemented in C:
#includeBitap distinguishes itself from other well-known string searching algorithms in its natural mapping onto simple bitwise operations, as in the following modification of the above program. Notice that in this implementation, counterintuitively, each bit with value zero indicates a match, and each bit with value 1 indicates a non-match. The same algorithm can be written with the intuitive semantics for 0 and 1, but in that case we must introduce another instruction into the inner loop to set R |= 1
. In this implementation, we take advantage of the fact that left-shifting a value shifts in zeros on the right, which is precisely the behavior we need.
Notice also that we require CHAR_MAX
additional bitmasks in order to convert the (text == pattern)
condition in the general implementation into bitwise operations. Therefore, the bitap algorithm performs better when applied to inputs over smaller alphabets.
Read more about this topic: Bitap Algorithm
Famous quotes containing the words exact and/or searching:
“Danger lies in the writer becoming the victim of his own exaggeration, losing the exact notion of sincerity, and in the end coming to despise truth itself as something too cold, too blunt for his purposeas, in fact, not good enough for his insistent emotion. From laughter and tears the descent is easy to snivelling and giggles.”
—Joseph Conrad (18571924)
“Our graves that hide us from the searching sun
Are like drawn curtains when the play is done.
Thus march we, playing, to our latest rest,
Only, we die in earnestthats no jest.”
—Sir Walter Raleigh (1552?1618)