Algorithm Design and
Analysis
is an essential basic course in computer science and technology, and it is a
compulsory course for the academic researcher and software developers in
various fields of computer science and technology. Through the study of various
representative algorithms, it aims at understanding and mastering the main
principles of algorithm designing, cultivating students' ability to analyze the
complexity of algorithms, and thus laying a solid knowledge base for
independent algorithm design and analysis.
Through experiments, students can deepen their understanding of basic
algorithm design methods, enhance students' perceptual understanding of the
operational efficiency of different algorithms , and make students get
systematic training in algorithm design and programming skills, so that lay a
good practical foundation for future research and application development.
The experimental course is an in-course experiment, not a single column of
credits, will spend a total of 24 hours. The experiment was divided in 6
experiments, each assigned 4 hours. Experiments consist of three categories:
Validation, Design and Comprehensiveness, of which experiments 1-5 are
validation experiments and design experiments. Experiment 6 is a comprehensive
experiment used to replace the final examination.
Apply
brute force to solve the problem of string matching, further improve string
matching efficiency through time-space trade-offs. Please SUBMIT experimental
reports.
(1)
Write and debug the brute force string matching algorithm and apply it to a
specific search application.
(2)
Write the string matching algorithm using input enhancement technology, repeat
the above application, and compare and analyze the efficiency of the two.
PC-compatible
(language-free).
² Problem formulation
Look for the substring's (the
value of i) location of the matching pattern in the text.
Text: a string of n characters.
Pattern: a string of m characters.
(m < n)
² Algorithm strategy
A brute-force
algorithm for the string-matching problem is quite obvious: align the pattern
against the first m characters of the text and start matching the corresponding
pairs of characters from left to right until either all the m pairs of the
characters match (then the algorithm can stop) or a mismatching pair is
encountered. In the latter case, shift the pattern one position to the right
and resume the character comparisons, starting again with the first character
of the pattern and its counterpart in the text. Note that the last position in
the text that can still be a beginning of a matching substring is n – m
(provided the text positions are indexed from 0 to n − 1). Beyond that
position, there are not enough characters to match the entire pattern; hence,
the algorithm need not make any comparisons there.
Get Free Quote!
272 Experts Online