자료구조란? 데이터 값의 모임, 각 데이터들이 논리적으로 정의된 규칙에 의해 나열되며 자료에 대한 처리를 효율적으로 수행할 수 있도록 자료를 구분하여 표현한 것. 연산에 사용되는 컴퓨터의 메모리 자원은 한정적인데 반해 처리해야할 데이터는 많을 수 있는데, 이 메모리 공간을 효율적으로 사용하는 데 필요한 것이 자료구조 이다.
<aside> ✨
모든 목적에 맞는 자료구조는 없기 때문에 각 자료구조의 장단점을 잘 파악하는 것이 중요하다.
</aside>
알고리즘이란?
Algorithm
이란 어떤 문제를 해결하기 위해 정해진 절차나 방법을 공식화 한 형태로 표현한 것. 문제풀이에 필요한 계산절차 또는 처리과정의 순서이다. ”프로그램 명령어들의 집합” 이라고도 한다.
보통 자료구조가 선택되면 적용할 알고리즘은 명확해진다. 즉, 자료구조가 효율적인 알고리즘을 사용할 수 있게 함으로써 자료구조와 알고리즘은 밀접한 관계를 가지게 된다.
프로그램은특정 문제를 해결하기 위한 처리 방법과 순서를 기록한 명령어들의 모음이다. 이 프로그램이 실행되기 위해서는 메모리에 올릴 데이터가 필요하며 이 데이터들을 담아내는 방식은 자료구조다.
<aside> ✨
자료구조의 선택 → 효율적인 알고리즘의 선택
즉, 넓은 의미에서 자료구조 + 알고리즘(+a) = 프로그램 이라고 할 수 있다.
</aside>
자료구조로 흔히 알려진 배열, 리스트, 큐, 스택 같은 기본적인 것부터, 특수한 상황에 맞는 자료구조도 있기 때문에 범위가 상당히 넓다.
동일한 타입의 데이터들을 저장하며, 고정된 크기를 가진다. 인덱싱이 되어있어 인덱스번호로 접근이 가능하다.
- 인덱스(index)