Brute Force Algorithm
-
Upload
rakshita-tuli -
Category
Documents
-
view
1.332 -
download
77
description
Transcript of Brute Force Algorithm
BRUTE FORCE ALGORITHM
MADE BY:Rakshita tuli 1469it
Salika Chaudhary 1477it
INDEX Brute Force Brute Force String Matching Algorithm Example Efficiency of Brute force algorithm Strength of Brute force algorithm Weaknesses of Brute force
algorithm
Exact Pattern Matching String matching algorithms or pattern matching
algorithms try to find a place where one or several strings (also called patterns) are found within a larger string or text.
Various pattern matching algorithms are :• Brute force algorithm• Boyer Moore Algorithm• Aho - Corasik Algorithm etc.
Brute Force
A straightforward approach, usually based directly on the problem’s statement and definitions of the concepts involved
Examples:1. String and pattern matching
2. Computing n!
3. Multiplying two matrices
4. Searching for a key of a given value in a list
Brute-Force String Matching pattern: a string of m characters to search for text: a (longer) string of n characters to search in problem: find a substring in the text that matches the
pattern
Brute-force algorithmStep 1 Align pattern at beginning of textStep 2 Moving from left to right, compare each character of
pattern to the corresponding character in text until all characters are found to match (successful search); or a mismatch is detected
Step 3 While pattern is not found and the text is not yet exhausted, realign pattern one position to the right and repeat Step 2
Algorithm
Examples of Brute-Force String Matching
Efficiency The expected number of comparisons when
searching an input text string of n characters for a pattern of m characters is:
Where NC is expected number of comparisons and c is the size of alphabet of the text.
Efficiency Brute-force pattern matching runs in time O(nm).
Challenges
Brute force strengths Strengths:
It is wide applicable.
It is not complex in nature unlike other algorithms.
It yields reasonable algorithms for some important problems
searching; string matching; matrix multiplication
It yields standard algorithms for simple computational tasks
sum/product of n numbers; finding max/min in a list
Brute force weaknesses Weaknesses:
It rarely yields efficient algorithms
Some brute force algorithms are unacceptably slow
e.g., the recursive algorithm for computing Fibonacci numbers
It is not as constructive/creative as some other design techniques
Applications parsers.
spam filters.
digital libraries.
screen scrapers.
word processors.
web search engines.
natural language processing.
computational molecular biology.
feature detection in digitized images. . . .