Difference between revisions of "Algorithm design"
Karl Jones (Talk | contribs) (First) |
Karl Jones (Talk | contribs) (etc) |
||
Line 1: | Line 1: | ||
− | '''Algorithm design''' is a specific method | + | '''Algorithm design''' is a specific method for creating [[Algorithm|algorithms]]. |
Applied algorithm design is algorithm engineering. | Applied algorithm design is algorithm engineering. | ||
Line 5: | Line 5: | ||
Algorithm design is identified and incorporated into many solution theories of operation research, such as dynamic programming and divide-and-conquer. | 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 | + | Techniques for designing and implementing algorithm designs include: |
+ | |||
+ | * Algorithm [[Design pattern|design patterns]] | ||
+ | ** Template method pattern | ||
+ | ** Decorator pattern | ||
+ | * Data structures, and name and sort lists. | ||
Some current day uses of algorithm design can be found in internet retrieval processes of web crawling, packet routing and caching. | Some current day uses of algorithm design can be found in internet retrieval processes of web crawling, packet routing and caching. |
Revision as of 08:40, 4 June 2015
Algorithm design is a specific method for creating algorithms.
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 include:
- Algorithm design patterns
- Template method pattern
- Decorator pattern
- Data structures, and name and sort lists.
Some current day uses of algorithm design can be found in internet retrieval processes of web crawling, packet routing and caching.
Mainframe programming languages such as ALGOL (for Algorithmic language), FORTRAN, COBOL, PL/I, 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 run time, also known as its big Oh.
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
External links
- Algorithm design @ Wikipedia