컴퓨터 공학의 기초 지식을 재학습하던 중, 자료구조의 중요성과 사용 가치를 굳건히 하기 위해 학습한다.
"프로그램이란 데이터를 표현하고 그렇게 표현된 데이터를 처리 하는 것"
이 때 '데이터를 표현' 하는 것을 자료구조, '표현된 데이터를 처리' 하는 것을 알고리즘 이라고 볼 수 있다.
이 데이터를 표현 에는 저장 의 의미가 내포되어 있다.
따라서 자료구조란 결국 데이터를 저장하는 컴퓨터 공학이다 라고도 이해할 수 있다.
데이터 값의 모임, 또 데이터 간의 관계, 그리고 데이터에 적용할 수 있는 함수나 명령을 의미 한다고도 말한다.
https://ko.wikipedia.org/wiki/%EC%9E%90%EB%A3%8C_%EA%B5%AC%EC%A1%B0
총 4가지의 큰 타입, 그리고 각각의 세분화가 나누어져 있다.
int main()
{
//배열의 선언
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
int sum = 0;
//배열에 저장된 값의 합을 구함
for(int i = 0; i<10; i++)
{
sum += arr[i];
}
}
이 예시 코드에서 '배열의 선언' 을 자료구조, '배열에 저장된 값의 합을 구하는 과정' 을 알고리즘 이라고 표현할 수 있다.
그만큼 알고리즘 자체는 자료구조에 의존적인 형태를 지니고 있다.
해서 우리가 자료구조에 대해 학습할 때 항상 '자료구조와 알고리즘' 이라고 묶어서 학습하게 되는 것이다.
학습 방법은 두가지가 있다.
1. 자료 구조의 모델 자체에 대한 이해와 이론 중심 학습
2. 코드 레벨에서의 자료구조 구현 중심 학습
기억해야 할 것으로는
1. 자료구조의 모델을 그림으로 우선 이해하고
2. 꼭 코드로 구현해야만 학습의 의미가 있는 것은 아니다.
가 있다.
#프로그래밍 및 언어 - 자료구조 학습 의 모든 내용은 '윤성우의 열혈 자료구조' 에서 학습한 내용임을 밝힙니다.
https://cafe.naver.com/cstudyjava
#6. 빅-오 표기법 (Big-Oh Notation) (0) | 2024.10.18 |
---|---|
#5. 이진 탐색 알고리즘 시간 복잡도 (6) | 2024.10.18 |
#4. 이진 탐색 알고리즘 구현 (3) | 2024.10.18 |
#3. 순차 탐색 알고리즘 성능 분석 (1) | 2024.10.17 |
#2. 알고리즘의 성능 분석 방법 (0) | 2024.10.17 |