알고리즘

최근 편집: 2019년 5월 14일 (화) 16:42
외않되 (토론 | 기여)님의 2019년 5월 14일 (화) 16:42 판 (문장 다듬기, 구조적 프로그래밍 정리 링크 추가.)

알고리즘이란 어떤 일을 수행하는 과정을 순차적으로 제시한 모호함 없는 절차이며, 문제 해결을 위해 명령의 순서를 지정하는 것을 의미한다.

알고리즘은 반드시 유한한 단계 이내에 종료되어야 한다. 종료란 에러 발생, 예외 등으로 인한 비정상적 종료를 포함한다.

사람들은 컴퓨터 뿐만 아니라 생활 속에서도 자신도 모르게 알고리즘을 사용하고 있다. 예를 들어, 백과사전에서 원하는 항목을 찾기 위해 첫 페이지부터 차례대로 찾지 않고 목차나 색인을 훑어보며 찾는 행위는 인덱스 엔트리를 사용한 변형된 이진 탐색 알고리즘의 일종이라고 볼 수 있다.

동작

구조적 프로그래밍 정리에 따르면 모든 알고리즘은 다음 세 유형의 동작만으로 표현할 수 있다. 즉, 다음 세 가지 동작을 재귀적으로 조합하면 컴퓨터가 하는 모든 일을 나타낼 수 있다.

  • 순차 동작(sequence): 한가지 동작을 수행한 후 다음 동작으로 이동한다.
  • 조건 동작(selection): 단계를 수행하기 전 '조건'을 먼저 물어본 후, 조건에 따라서 다른 동작을 선택하여 수행한다.
  • 반복 동작(repetition): 조건을 만족할 때까지 특정한 동작을 반복하여 수행한다.