Algorithm design: Difference between revisions
Appearance
Content deleted Content added
Fixing some cases |
Redirect page to Algorithm#Design (merged most of content into there) Tag: New redirect |
||
Line 1: | Line 1: | ||
⚫ | |||
{{refimprove|date=May 2018}} |
|||
{{expert-subject|Computer science|date=May 2018|reason=the naivety of this article is astonishing, given the importance of the subject}} |
|||
'''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. |
|||
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]]. |
|||
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 == |
|||
* [[Divide and conquer algorithm|Divide and conquer]] |
|||
* [[Dynamic programming]] |
|||
* [[Greedy algorithm]] |
|||
* [[Back tracking|Back Tracking]] |
|||
* [[Brute-force search|Brute Force]] |
|||
== Notes == |
|||
{{reflist}} |
|||
== Further reading == |
|||
* [http://www.csc.liv.ac.uk/~ped/teachadmin/algor/algor.html Algorithm Design Paradigms] - Overview by Paul Dunne at the University of Liverpool |
|||
* [http://www.cs.sunysb.edu/~algorith/ Stony Brook Algorithm Repository] by [[Steven Skiena|Steven S. Skiena]], Department of Computer Science, State University of New York |
|||
{{Design}} |
|||
{{Computer science}} |
|||
⚫ | |||
[[Category:Algorithms]] |
|||
{{algorithm-stub}} |
Revision as of 22:19, 14 June 2018
Redirect to: