[자료구조]Data Structure의 개요

Date:     Updated:

카테고리:

1. 자료 구조의 개요

1) 자료 구조의 개념

자료 구조(Data Structure)란
실세계에 존재하는 다양한 자료들을 프로그램이 효율적으로 처리될 수 있도록 컴퓨터상의 자료로 저장하거나 표현하는 논리적인 구조이다. 또한 각각의 자료구조는 데이터의 형식만 규제하는 것이 아니고, 데이터에 접근하고 처리하는 규칙 을 포함한다.

2) 자료 구조의 형태

1

자료 구조를 형태로 분류해서 보면, 순서를 갖고 나열하는 선형 구조, 계층적 구조나 망(network) 구조 등을 표현하게 되는 비선형 구조로 크게 나뉜다. 참고로, 단순 구조로서 정수, 실수, 문자, 문자열 등의 컴퓨터가 기본적으로 제공하는 자료구조도 있다.

3) 자료 구조 선택시 주의사항

어떠한 알고리즘을 만드는데 있어서 좋은 알고리즘인지 아닌지 평가하게되는 지표들이 몇몇 가지 있다. 그 중 대표적인것이 시간 복잡성(Time Complexity)이다. 개발자 본인이 자료를 표현하기 위해 어떤 구조를 선택하는지에 따라 간결성, 명확성, 처리속도, 필요한 메모리의 크기 등이 모두 달라진다. 예를 들어, 사용자의 정보가 담겨져있는 데이터를 빠르게 찾는 것 을 목표로 하는 알고리즘이라면, 탐색에서 가장 좋은 시간 복잡도를 보이는 자료를 선택해야 한다.

프로그램의 성능을 평가하는 기준은 크게 두가지로 나뉜다

  • 주관적 평가: 모듈화되어 이해하기 쉽고 수정이 용이한가
  • 객관적 평가: 주어진 문제를 의도한 대로 해결하데 걸리는 시간과 사용되는 메모리의 크기 비교

결국, 객관적인 지표로 어떤 알고리즘이 좋다 나쁘다를 평가할 때는 알고리즘의 수행 시간과 소모되는 메모리의 크기 항상 고려해야 한다는 것이다. 각각의 Data structure마다 수행 시간의 관점과, 메모리 소모량이 다르다. 이 두 특성이 모두 최상인 자료 구로는 존재하지 않는다. 따라서, 적절한 알고리즘에 적절한 자료 구조를 선택해야 한다. (다시 말해서, 저 둘은 일종의 Trade-off 관계이다.)

적절한 자료구조 선택을 위해 고려해야 할 사항

  • 자료의 총량
  • 자료를 사용하는 총량
  • 자료의 성향(동적, 정적)
  • 자료 구조 구현에 필요한 기억 공간의 양
  • 하나의 자료를 찾아내는 데 걸리는 시간
  • 프로그래밍 난이도

참고 자료

  • https://ongveloper.tistory.com/381

DataStructure 카테고리 내 다른 글 보러가기

댓글 남기기