영운's 블로그

자료구조는 왜 알아야 하나? 본문

자료구조

자료구조는 왜 알아야 하나?

오영운(you88) 2022. 6. 30. 19:36

 

 

다양한 자료구조들

 

자료구조란?

한정된 메모리 공간 안에서 데이터를 관리(저장, 사용)하기 위한 논리적 구조

 

 

자료구조를 알아야 할까?

데이터의 개수가 늘어날 수록 어떠한 자료구조를 사용하는지에 따라 프로그램의 효율성이 크게 달라짐.

따라서 자료구조의 장단점을 정확히 파악하여 상황별로 적절한 자료구조를 사용하는 능력을 키워야 한다.

 

예를 들어 잦은 검색이 필요한 프로그램에서

배열을 사용하는 경우  배열의 맨 앞에서부터 배열의 마지막까지 존재할 수 있기에 평균 시간복잡도는 O(n)

해시 테이블을 사용하는 경우 평균 시간복잡도는 O(1)

 

하지만 해시테이블은  hash값을 저장할 별도의 공간이 필요하며, 해시 충돌(key 대응되는 hash 동일한 경우)

방지하기 위해 별도의 조치가 필요하고, hash 함수를 사용하는 자체가 computing power 잡아먹는 단점이 있다.

결국 검색이 자주 이루어지더라도 저장공간이 작고 computing power 낮은 기기에서는 해시테이블이

최고의 대안이 아닐 수도 있다.

 

이렇듯 개발자는 자료구조의 특징과 장단점을 정확히 파악하여 상황에 맞는 자료구조를 이용하여 

효율적인 프로그램을 만들 있다.

 

 

Comments