프로그램은 자료를 처리하기 위해 자료구조(data structure)를 사용한다. 또한 주어진 문제를 처리하는 절차를 알고리즘(algorithm)이라고 한다. 예를 들어 자료를 저장하는 배열이 자료구조가 되고, 배열에 저장된 값 중 가장 큰 값을 찾는 절차를 알고리즘이라고 한다.
프로그램 = 자료구조 + 알고리즘
알고리즘은 특정한 일을 수행하는 명령어들의 집합이다. 모든 명령어들의 집합이 알고리즘이 되는 것은 아니고, 아래와 같은 조건들을 만족하는 집합만이 알고리즘으로 정의된다.
- 0개 이상의 입력이 존재해야 한다.
- 1개 이상의 출력이 존재해야 한다.
- 각 명령어의 의미는 모호하지 않고 명확해야 한다.
- 한정된 수의 단계 후에는 반드시 종료되어야 한다.
- 각 명령어들은 실행 가능한 연산이어야 한다.