본문 바로가기

Et Cetera

[자료구조] 알고리즘이란?

반응형

알고리즘은 주어진 문제에 대한 해결 방법을 추상화하여 단계적 절차를 논리적으로 기술해 놓은 것이다. 즉, 문제를 해결하기 위해 명확히 정의된 유한 개의 규칙과 절차의 모임이다.

  1. 입력(Input): 알고리즘 수행에 필요한 자료가 외부에서 입력으로 제공될 수 있어야 한다.
  2. 출력(Output): 알고리즘 수행 후 하나 이상의 결과를 출력해야 한다.
  3. 명확성(Definiteness): 수행할 작업의 내용과 순서를 나타내는 명령어들은 명확하게 명세되어야 한다.
  4. 유한성(Finiteness): 알고리즘은 수행 뒤에 반드시 종료되어야 한다.
  5. 효과성(Effectiveness): 알고리즘의 모든 명령어들은 기본적이며 실행이 가능해야 한다.

알고리즘을 표현하는 방법에는 아래와 같이 다양한 방법이 있다.

- 자연어를 이용한 서술적 표현 방법: 사람이 쓰는 자연어로 표현하는 방법이지만, 사용하는 사람에 따라 일관성 및 명확성을 유지하는데 어려움이 있다.

- 순서도(Flow Chart)를 이용한 도식화 표현 방법: 순서도로 표현하는 방법이다. 명령의 흐름을 쉽게 파악할 수 있지만 복잡한 알고리즘을 표현하는 데에는 어려움이 있다.

- 프로그래밍 언어를 이용하여 구체화하는 방법: 프로그래밍 언어를 사용하여 표현하는 방법이다. 하지만 프로그래밍 언어가 다양하기 때문에 언어를 모르면 알고리즘을 이해할 수 없고, 다른 프로그래밍 언어로 변환해야 하는 번거로움이 있다.

- 가상 코드(Pseudo-code)를 이용한 추상화 방법: 프로그래밍 언어 표현 방법의 단점을 보완한 방법으로 프로그래밍 언어 형태를 갖춘 가상 코드를 사용한다. 가상 코드는 의사 코드 또는 알고리즘 기술 언어(ADL; Algorithm Description Language)라고도 불린다. 특정 프로그래밍 언어가 아니므로 직접 실행할 수는 없지만 형태가 비슷하여 원하는 특정 프로그래밍 언어로 구체화 작업을 하기에 용이하다.

 

 

 

참고: 메가존아이티평생교육원, 자료구조 2주 1회

네이버 지식백과, 컴퓨터인터넷IT용어대사전

반응형