Algorithm design: Difference between revisions
Appearance
Content deleted Content added
Lembit Staan (talk | contribs) |
Lembit Staan (talk | contribs) |
||
Line 1: | Line 1: | ||
{{refimprove|date=May 2018}} |
|||
'''Algorithm design''' is a specific method to create a mathematical process in [[problem solving]] processes. Applied algorithm design is [[algorithm engineering]]. |
'''Algorithm design''' is a specific method to create a mathematical process in [[problem solving]] processes. {{cn|date=may 2018}} Applied algorithm design is [[algorithm engineering]]. |
||
Algorithm design is identified and incorporated into many solution theories of [[operation research]], such as [[dynamic programming]] and [[Divide and conquer algorithm|divide-and-conquer]]. Techniques for designing and implementing algorithm designs are algorithm design patterns,<ref>{{citation|url=http://ww3.algorithmdesign.net/ch00-front.html|title=Algorithm Design: Foundations, Analysis, and Internet Examples|last1=Goodrich|first1=Michael T.|author1-link=Michael T. Goodrich|last2=Tamassia|first2=Roberto|author2-link=Roberto Tamassia|publisher=John Wiley & Sons, Inc.|year=2002|isbn=0-471-38365-1}}</ref> such as [[template method pattern]] and [[decorator pattern]], and uses of data structures, and name and sort lists. |
Algorithm design is identified and incorporated into many solution theories of [[operation research]], such as [[dynamic programming]] and [[Divide and conquer algorithm|divide-and-conquer]]. Techniques for designing and implementing algorithm designs are algorithm design patterns,<ref>{{citation|url=http://ww3.algorithmdesign.net/ch00-front.html|title=Algorithm Design: Foundations, Analysis, and Internet Examples|last1=Goodrich|first1=Michael T.|author1-link=Michael T. Goodrich|last2=Tamassia|first2=Roberto|author2-link=Roberto Tamassia|publisher=John Wiley & Sons, Inc.|year=2002|isbn=0-471-38365-1}}</ref> such as [[template method pattern]] and [[decorator pattern]], and uses of data structures, and name and sort lists. |
||
Mainframe programming languages such as [[ALGOL]] (for ''Algo''rithmic ''l''anguage), [[FORTRAN]], [[COBOL]], [[PL/I]], [[SAIL programming language|SAIL]], and [[SNOBOL]] are computing tools to implement an "algorithm design"... but, an "algorithm design" (a/d) is not a language. An a/d can be a hand written process, e.g. set of equations, a series of mechanical processes done by hand, an analog piece of equipment, or a digital process and/or processor. |
|||
One of the most important aspects of algorithm design is creating an algorithm that has an efficient runtime, also known as its [[Big O notation|Big O]]. |
One of the most important aspects of algorithm design is creating an algorithm that has an efficient runtime, also known as its [[Big O notation|Big O]]. |
Revision as of 19:34, 9 May 2018
This article needs additional citations for verification. (May 2018) |
Algorithm design is a specific method to create a mathematical process in problem solving processes. [citation needed] Applied algorithm design is algorithm engineering.
Algorithm design is identified and incorporated into many solution theories of operation research, such as dynamic programming and divide-and-conquer. Techniques for designing and implementing algorithm designs are algorithm design patterns,[1] such as template method pattern and decorator pattern, and uses of data structures, and name and sort lists.
One of the most important aspects of algorithm design is creating an algorithm that has an efficient runtime, also known as its Big O.
Steps in development of Algorithms
- Problem definition
- Development of a model
- Specification of Algorithm
- Designing an Algorithm
- Checking the correctness of Algorithm
- Analysis of Algorithm
- Implementation of Algorithm
- Program testing
- Documentation Preparation
Common design paradigms
Notes
- ^ Goodrich, Michael T.; Tamassia, Roberto (2002), Algorithm Design: Foundations, Analysis, and Internet Examples, John Wiley & Sons, Inc., ISBN 0-471-38365-1
Further reading
- Algorithm Design Paradigms - Overview by Paul Dunne at the University of Liverpool
- Stony Brook Algorithm Repository by Steven S. Skiena, Department of Computer Science, State University of New York