알고리즘의 정의 : 특정한 일을 수행하는 명령어들의 유한 집합이며 다음과 같은 조건들을 만족해야 한다.
1) 입력 : 외부에서 제공되는 데이터가 0개 이상
2) 출력 : 1개 이상의 결과를 생성한다.
3) 명확성 : 각 명령들은 명확하고 애매모호하지 않아야 한다.
4) 유한성 : 알고리즘의 명령대로 수행하면 어떤 경우에도 한정된 수의 단계 뒤에는 반드시 종료한다.
5) 유효성 : 원칙적으로 모든 명령들은 종이와 연필만으로 수행될 수 있게 기본적이어야 한다.