자료구조란
데이터를 저장하고 관리하는 방식
자료구조는 데이터를 체계적으로 저장하여 메모리를 효율적으로 사용할 수 있게 하고, 빠르고 안정적으로 데이터를 처리할 수 있도록 도와준다.
10개의 변수에 10개의 숫자를 선언하는 것보다 하나의 배열에 10개의 숫자를 저장하는게 좋다.
num 1 =10
num 2 =20
-> num = [10,20]
자료구조 리스트
- 선형 자료 구조
- 배열
- 동적 배열
- 연결 리스트
- 큐
- 스택
- 해쉬 테이블
- 비선형 자료 구조
- 트리
- 그래프
알고리즘
- 문제 해결 방법 : 어떠한 문제를 해결하기 위해 정해진 일련의 절차나 방법
- 자주 쓰이는 문제 해결 방법은 패턴화 (알고리즘)
- BFS, DFS, Binary Search, Dijkstra
- 한 문제를 해결할 수 있는 알고리즘은 다양하다.
- 각 문제에 적합한 알고리즘을 선택할 수 있어야 한다.
- 알고리즘을 평가할 수 있어야 한다.
알고리즘 평가 기준
- 시간 복잡도
- 공간 복잡도
- 구현 복잡도
시간복잡도와 공간복잡도는 보통 trade-off 관계입니다. 실행시간을 줄이기 위해서는 메모리를 더 사용해야 하고, 메모리를 사용량을 줄이다보면 실행시간이 늘어나게 됩니다.
메모리
데이터의 기본 단위인 비트,바이트 (2진법, 16진법)
리스트
메모리상에서 연속적으로 저장된다.
연결 리스트
메모리상에서 불연속적으로 저장한다. 다음 값에 대한 주소도 함께 저장한다.