자료구조와 알고리즘

Dora·2020년 7월 7일
0

자료구조(Data Structure)

자료들을 정리하여 보관하는 여러 가지 구조들.

ex.
접시처럼 자료들을 쌓아서 정리하면 "스택"
마트 계산대 처럼 선입선출의 형태로 정리하면 "큐"

자료구조와 알고리즘이 중요한 이유?

프로그램 = 자료구조 + 알고리즘

  • 대부분의 프로그램에서 자료 구조를 사용하여 자료를 저장하고,
    그 자료들은 알고리즘을 통해 문제를 처리하는데 이용되기 때문이다.

  • 자료구조가 결정되면 그 자료구조에 사용할 수 있는 알고리즘은 정해져 있다.

간단한 자료구조 예시

n명의 학생들 중 최고 성적을 구하는 프로그램
자료구조 : 학생들의 성적이 담긴 배열 score[]
알고리즘 : score[0]을 largest로 두어 나머지와 비교하여 largest 찾기

문제해결

1단계. Problem Solving
문제 해결 방법으로 보통 프로그래밍 스타일이나 언어와는 무관하다.

2단계. Algorithm
컴퓨터로 문제를 풀기 위한 단계적인 절차를 장치가 이해할 수 있는 언어로 기술하는 것.

알고리즘의 정의

특정한 일을 수행하는 명령어들의 집합이라고도 할 수 있다.

  1. 0개 이상의 입력
  2. 1개 이상의 출력
  3. 명백성 : 명령어의 의미가 모호하지 않을 것.
  4. 유한성 : 반드시 종료될 것.
  5. 유효성 : 실행 가능한 연산일 것.

알고리즘 기술 방법

  1. 자연어
  2. 흐름도(flowchart)
  3. 의사 코드(pseudo-code)
  4. 프로그래밍 언어

자연어

약간의 모호성이 존재하여 명령어로 사용되는 단어들의 명백한 정의가 요구됨.

흐름도

도형을 사용하여 기술. 알고리즘이 복잡해 질수록 기술이 힘들어짐.

의사 코드

  • 자연어보다 체계적이고 프로그래밍 언어보다 덜 엄격함.
  • 알고리즘을 기술하는 데만 사용된다.
  • C언어와 유사하지만 대입연산자에 = 대신 <-를 사용.

프로그래밍 언어

모든 예약어들이 명백한 의미를 갖고 있음.


//의사 코드와 프로그래밍언어가 가장 많이 쓰인다.

profile
Lv.1 개발자

0개의 댓글