Well-defined computational procedures that takes a set of values as inputs and produces some set of values as outputs.
잘 정의된 문제해결의 과정. DataStructure와 함께 ComputerScience에서 HowToSolveIt의 과정이다.
알고리즘개발에 있어서 중요한것은 ComputationalComplexity, AlgorithmicComplexity의 효과적인 감소에 있다.
알고리즘의 평가는 주로 worst-case analysis를 한다. 그 이유는
- 많은 알고리즘이 대부분의 실행에서 최악의 조건에 놓여진다.
- 최상의 경우에는 똑같은 성능을 보인다.
- 평균을 명확히 정의하는것조차 어렵다.
- 최악보다 더 나쁘게 실행되지는 않을것이다.
가끔은 최악분석보다는 평균분석을 하는 경우도 있다. (QuickSort등의 무작위 알고리즘)
기본적인 알고리즘의 설계방법
Bioinformatics concerned Algorithms
추천도서
관련자료
See also HowToStudyForProgrammer, EstimateOrderOfAlgorithm, SortAlgorithm