자료구조에 대한 이해를 높히기 위해 간단한 예시를 들어보자.
(출처 : https://www.youtube.com/watch?v=bh23BDYOry8)
해당 사진처럼 전화번호를 기록할 수 있는 전화번호부가 있다고 가정해보자.
전화번호부의 들어갈것들이 소량이라면 이렇게 적어도 찾을때 어려움을 겪지 않는지만
전화번호가 많아질수록 찾기가 어려워진다.
(출처 : https://www.youtube.com/watch?v=bh23BDYOry8)
하지만 다음과같이 이름순으로 정렬한다면 찾기가 훨씬 더 수월해진다.
그런데 이것도 문제가있다.
새로운 연락처를 추가하게된다면
밑에있는 값들을 모두 지우고 다시 써야한다는 것이다.
그렇다면 좀 더 효율적인 방법은 무엇이 있을까 ?
(출처 : https://www.youtube.com/watch?v=bh23BDYOry8)
위 사진처럼 각각의 크기를 여유롭게 만들어두고 이름순이 아닌 선착순으로 값을 넣게된다면 새로운 데이터 삽입이 쉬워진다.
하지만 이또한 단점이 있다. 여유롭게 크기를 지정했기때문에 공간 낭비가 있다는것
이렇게 앞선 예시에서 제시한것처럼 각 방법마다 장점, 단점이 있고 프로그래밍에서의 자료구조와 거의 유사하다.
따라서 어떤 자료구조를 사용하기에따라 실행 속도와 메모리 사용이 극명하게 달라진다는것이고 어떤 문제를 해결하기 위한 자료구조 선택은 곧 효율과 관련이 있다고 볼 수 있다.