본문 바로가기

기술면접/정리하기

자료구조와 알고리즘의 정의와 상관관계

자료구조 : 컴퓨터에 데이터를 표현하고 저장하는 방법

알고리즘 : 문제 해결 방법

 

어떤 자료구조를 쓰느냐에 따라 문제를 해결하는 방법이 달라지고 성능도 달라지게 된다.

모든 상황에 좋은 자료구조는 존재하지 않는다. 상황에 따라 효율적인 자료구조를 선택하고 알고리즘을 구현해야한다.

 

 

자료구조란?

우리가 평소에 데이터 저장을 하기위해 사용했던 정수형 변수 int, 구조체, 배열

자료형이나 배열 등은 간단한 자료구조이기에 자료구조론에서는 주로 선형, 비선형 구조를 다룬다.

 

- 선형 자료구조 (Linear Data Structure)

데이터를 선의 형태로 나란히 혹은 일렬로 저장하는 방식

ex) 리스트, 스택, 큐, 덱 등

 

-비선현 자료구조 (Non-linear Data Structure)

데이터를 선의 형태처럼 나란히 저장하지 않는 구조

ex) 트리, 그래프 등

 

 

자료구조를 어렵게 생각할 필요는 없다.

효율적으로 데이터를 저장하고 사용하기 위해서 여러 자료구조를 배우는 것이다.

(상황에 따라 복잡한 자료구조가 효율적이지 않을 수도 있다.(ex. 배열로 충분한 자료구조일때))

요즘 언어들은 라이브러리에서 자료구조를 지원해주기 때문에 직접 구현하지 않고도 간단히 사용 가능하지만 프로그램에 맞게 라이브러리를 수정하거나 직접 구현해야하는 경우도 있다. 이 때를 대비해서 자료구조의 원리와 구현은 충분히 알아두는 것이 좋다.

 

'기술면접 > 정리하기' 카테고리의 다른 글

디자인 패턴  (1) 2019.05.22
객체 지향(OOP)  (0) 2019.05.14
힙 메모리 최적화와 오브젝트 풀링  (1) 2019.05.10
메모리 공간 : 데이터(Data)영역, 힙(Heap)영역, 스택(Stack)영역  (0) 2019.05.09
큐 (Queue)  (0) 2019.05.09