Jump to content

Algorithm design: Difference between revisions

From Wikipedia, the free encyclopedia
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:
#REDIRECT [[Algorithm#Design]]
{{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}}

{{DEFAULTSORT:Algorithm Design}}
[[Category:Algorithms]]
{{algorithm-stub}}

Revision as of 22:19, 14 June 2018

Redirect to: