Professional Documents
Culture Documents
Brute-Force Searching and String Matching
Brute-Force Searching and String Matching
Brute-Force Searching and String Matching
1
Sequential Search
bool LinearArrayFind(int array[],int n, int key )
{
for( int i = 0; i < n; i++ )
{
if( array[i] == key )
// Found it!
return true;
}
return false;
}
2
Search Algorithms
Suppose that there are n elements in the array. The following expression
gives the average number of comparisons:
It is known that
3
Brute-Force String Matching
Example
abacaabaccabacabaabb
abacab
abacab
abacab
abacab
abacab
abacab
abacab
abacab
abacab
abacab
abacab
Example
abacaabaccabacabaabb
abacab
abacab
abacab • The brute force algorithm
abacab • 22+6=28 comparisons.
abacab
abacab
abacab
abacab
abacab
abacab
abacab
• Assume |T| = n and |P| = m
Text T
Pattern P
Pattern P
Pattern P
3 -8
A Brute-Force Algorithm
3 -9
A Brute-Force Algorithm
3 -10
A Brute-Force Algorithm
3 -11
A Brute-Force Algorithm
3 -12
Brute-Force String Matching
Searching for a pattern, P[0...m-1], in text, T[0...n-1]