# 자료구조란
데이터는 분석하고 정리하여 활용해야한 의미를 가지며 사용목적에 따라 형태를 구분하고 분류하는 것이 좋다.
그렇기 때문에 저장공간에 있는 data를 효율적으로 [읽기, 쓰기, 삽입, 삭제, 탐색] 하기 위해서 여러 데이터들의 묶음을 저장하고 사용하는 방법을 정의한 것이다.
# 알고리즘 시간복잡도
알고리즘이란? - input을 output으로 전달하는 잘 정리된 절차, 문제를 해결하는 잘 정의된 절차
가상 컴퓨터 + 가상 언어 + 가상 코드
RAM model = CPU + memory + 기본 연산 (단위시간에 수행되는 연산)
기본연산 - 배정, 대입, 복사, 산술 연산, 비교 연산, 논리 연산, 비트 연산
알고리즘의 수행 시간 = 최악의 경우의 입력에 대한 기본 연산 횟수
# 표기법
big- O - 상한을 나타냄
big-omega - f(n)<=cg(n) for n>=n0 - 하한을 나타냄 빅오와 반대
big-theta - 증가율이 같았을때, big-O와 big-omega 모두 만족할때
# 자료구조 종류
# reference
https://www.youtube.com/watch?v=PIidtIBCjEg&list=PLsMufJgu5933ZkBCHS7bQTx0bncjwi4PK