본문 바로가기
자료구조와 알고리즘/자료구조

자료구조

by oncerun 2020. 7. 29.
반응형

자료구조는 무엇일까? 

우리는 수많은 데이터들을 다룬다. 이러한 데이터를 구조적으로 표현하는 방식입니다.

 

어떻게 표현한다는 걸까?

데이터들을 효율적으로 메모리에 배치한 뒤 저장하여 관리까지 하기 위함입니다.

데이터마다 적절한 자료구조가 다르며 자료구조의 사용은 메모리의 사용 용량을 절약해주며 실행시간까지 단축시켜줄 수 있습니다.

 

구조적이라는 것은 뭘까?

데이터 값의 모임, 데이터 간의 관계 그리고 데이터에 적용할 수 있는 함수나 명령체계 등을 이야기합니다.

 

즉 이러한 데이터들을 현실에서 우리가 나열하듯이 컴퓨터로 표현 가능한 형태로 구조화시킨 것이 자료구조입니다.

자료구조에서는 Search 자료의 탐색, Insert 자료의 추가, delete 자료의 삭제 등이 수행됩니다.

 

자료구조를 선택할 때는 여러 가지 사항을 체크해야 합니다.

자료의 크기는 얼마 나되는 가? 

자료의 처리 시간은?

자료를 얼마나 활용하는가? 

갱신은 또 얼마나 하는가?... 등등 

적절한 자료구조에 맞춰서 선택을 해야 합니다.

 

 

이해를 조금 더 돕기 위해 그림으로 예제를 들어봅니다.

 

마트에 가면 판매상품들이 나열되어있습니다. 

현실을 컴퓨터로 표현 가능한 형태로 구조화시킨 것이 무엇이 있을까요?

바로 배열입니다.

 

우리가 자주 사용하는 배열도 자료구조입니다.

 헷갈릴 수 있는 부분은 Data type과 Data Structure입니다..

 

자료구조로서 배열은 인덱스를 가지며, 이러한 인덱스로 자료에 접근이 가능하고 순차적으로 구성된 자료구조를 뜻하는 것이 배열입니다.

 

자료형 즉 Data type으로의 배열은 해당 프로그래밍 언어의 문법 수준에서 이러한 자료구조인 배열을 기본적인 자료형으로 지원하는 경우를 말합니다. 또한 이러한 배열을 다루기 위한 메서드들도 준비해놓았으니 활용할 수 있습니다.

 

 

여러 자료구조를 시각 해서 보여줄 수 있는 사이트가 있습니다.

https://visualgo.net/en

 

VisuAlgo - visualising data structures and algorithms through animation

VisuAlgo is free of charge for Computer Science community on earth. If you like VisuAlgo, the only payment that we ask of you is for you to tell the existence of VisuAlgo to other Computer Science students/instructors that you know =) via Facebook, Twitter

visualgo.net

 

자료구조에 대해 지식이 풍부하다면 알고리즘을 작성할 때 효율적인 성능을 뽑아내는 프로그램을 만들 수 있습니다.

알고리즘은 문제를 해결하는 절차입니다. 이러한 절차를 작성할때 적절한 자료구조를 선택해 데이터의 관리, 저장을 한다면 훨씬 좋은 프로그램이 될 것입니다.

 

 

반응형

'자료구조와 알고리즘 > 자료구조' 카테고리의 다른 글

해쉬 테이블  (0) 2020.09.02
링크드 리스트  (0) 2020.08.26
스택  (0) 2020.08.18
큐 (Queue)  (0) 2020.08.17
배열  (0) 2020.08.17

댓글