본문 바로가기
IT/프로그래밍

자료 구조와 알고리즘 이론 정리

by nutrient 2021. 5. 3.
728x90
728x170

많은 분들이 프로그래밍 공부를 시작하면서 어려움을 겪는 여러 구간이 존재하는데 그중 하나로 자료구조라고 생각합니다. 호기롭게 시작한 프로그래밍 공부를 끝까지 완수할 수 있도록 자료구조와 알고리즘 이론을 정리해보려고 합니다. 많은 분들이 읽고 자료구조를 이해하시면 좋겠습니다.

 

 

 

 

자료구조와 알고리즘이란

자료 구조란 사람들이 사물을 정리하는 것과 마찬가지로 프로그램에서도 자료들을 정리하는 여러 가지 구조들이 존재한다. 우리는 이를 자료 구조라고 부른다. 스택이라는 자료 구조 큐라는 자료 구조 등이 존재한다. 대부분의 프로그램에서 자료를 처리하고 이러한 자료는 자료 구조를 사용하여 표현된다. 주어진 문제를 처리하는 절차가 알고리즘이다.

알고리즘이란

알고리즘이란 문제를 해결하는 방법을 정밀하게 장치가 이해할 수 있는 언어로 기술한 것이다. 알고리즘은 따라서 특정한 일을 수행하는 명령어들의 집합이라고 할 수 있다. 여기서 말하는 명령어란 컴퓨터에서 수행되는 문장 등을 말한다. 하지만 모든 명령어들의 집합이 알고리즘이 되는 것이 아니라 조건을 만족하는 집합만이 알고리즘으로 정의된다. 알고리즘의 조건은 다음과 같다.

  • 입력: 0개 이상의 입력이 존재
  • 출력: 1개 이상의 출력이 존재
  • 명백성: 각 명령어의 의미는 명확해야 한다.
  • 유한성: 한정된 수의 단계 후에는 반드시 종료되어야 한다.
  • 유효성: 각 명령어들은 실행 가능한 연산이어야 한다.

알고리즘 표현법

알고리즘의 정의에 대해 알았다면 어떻게 표현하는 지도 알아보도록 하겠습니다. 알고리즘을 표현하는 데는 다음과 같은 4가지 방법이 존재합니다.

  • 1. 영어나 한국어 같은 자연어
  • 2. 흐름도(FlowChart)
  • 3. 유사코드(Pseudo-code)
  • 4. 프로그래밍 언어

첫 번째 방법은 모호성을 제거하기 위해 사용되는 단어를 명백하게 정의해야만 알고리즘이 될 수 있습니다. 두 번째 방법은 좋은 방법이지만 알고리즘이 복잡해지면 복잡해질수록 기술하기 힘들어집니다. 그렇기 때문에 3, 4번의 방법을 이용하여 알고리즘을 기술하는 것이 좋은 방법입니다.

 

 

728x90
그리드형

댓글