티스토리 뷰

자료구조

자료구조 Intro

콘린이 2021. 9. 20. 00:53

자료구조?

자료구조에서는 데이터를 표현하고 저장하는 방법에 대해서 설명한다.

'데이터의 저장'을 담당하는 것이 바로 자료구조이다.

 

넓은 의미에서 int형 변수, 구조체의 정의, 배열, 파일의 구조 등이 자료구조에 포함이 된다.

자료구조의 분류

데이터를 저장할 때 리스트로도 가능하고 트리로도 가능하다면 어떠한 것이 더 효율적일 것인가?

-> 각각의 특성을 정확히 이해해야 한다.

 

자료구조가 '데이터의 표현 및 저장방법'을 뜻한다면, 알고리즘은 이렇듯 표현 및 저장된 데이터를 대상으로 하는 '문제의 해결 방법'을 뜻한다.

자료구조가 결정되어야 그에 따른 효율적인 알고리즘을 결정할 수 있다.

: 자료구조와 알고리즘은 다른 과목임에도 불구하고 매우 많은 연관성을 지니고 있다.

 

잘 동작하고 좋은 성능을 보이기 위해서는 자료구조와 알고리즘을 분석하고 평가할 줄 알아야 한다. 

속도에 해당하는 알고리즘의 수행시간 분석결과 = 시간 복잡도(Time Complexity)

메모리 사용량에 대한 분석결과 = 공간 복잡도(Space Complexity)

메모리를 적게 쓰고 속도도 빨라야 최적의 알고리즘!

 

알고리즘의 수행속도 평가 방법

연산의 횟수를 세고, 처리해야 할 데이터의 수 n에 대한 연산횟수의 함수 T(n)을 구성한다.

 

동일한 기능을 제공하는 서로 다른 두 알고리즘의 성능을 비교했을 때,

데이터의 수가 적을 때 선택해야 되는 알고리즘과 데이터의 수가 많을 때 선택해야 하는 알고리즘이 다를 수 있다.

데이터의 수가 적은 경우에는 속도 차이가 별로 나지 않을 수도 있으니 더 중요한 것은 데이터의 수가 많아짐에 따른 연산횟수의 증가 정도이다.

 

알고리즘 분야에는 정답이 없는 것이 아니라 상황에 맞게 답을 내려야 한다.

구현보다 중요한 것은 종합적으로 사고하고 판단하는 능력이다!

 

 

 

참고자료

열혈 자료구조

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함