알고리즘이란
- 어떤 문제의 해결을 위해 필요한 절차를 기술한 것입니다.
- 그 절차나 방법을 이해할 수 있다면, 어떤 방법으로도 기술할 수 있는 것입니다.
[1] 입력이 있어야 한다.
[2] 결과를 구할 수 있어야 한다.
[3] 각 단계(방법)은 명백하고 모호하지 않아야 한다.
[4] 순서대로 실행을 할 수 있고, 실행이 종료되어야 한다.
[5] 모든 절차는 오류없이 실행되어야 한다.
프로그램이란
- 컴퓨터가 어떤 일을 처리할 수 있게 하는 (프로그래밍 언어로 작성된) 명령어의 집합.
[1], [2] - 결과가 구해지지 않을 수도 있다., [3], 은 비슷하다.
[4] 는 순서대로 실행이 되지만, 실행이 종료되어야만 하는 것은 아니다. (운영체제 같은 경우)
[5] 는 거의 만족하지만, 오류가 발생할 수도 있다.
프로그램
[1] 알고리즘을 실제로 구현(실행할수 있도록 명령어로 적성하는 것)한 것일 수도 있고.
[2] 알고리즘과는 관계가 없어 보이는 일상적인 일을 처리하는 일을 할수도 있다.
무한히 기다리다가 사용자의 요구가 있으면 필요한 일을 한다. 는 것도 프로그램이라고 할수 있습니다.
두번째 경우에는 프로그램은 반드시 종료되어야 하는 것은 아닙니다.
하지만 알고리즘은 어떤 시간이 지나면 반드시 종료가 되어야만 알고리즘이라고 할수가 있습니다.