✔️ big-O
: 입력값이 무한대로 향할때 함수의 상한을 설명하는 수학적 표기방법
✔️ 시간복잡도의 사전적 정의는 어떤 알고리즘을 수행하는 데 걸리는 시간을 설명하는 계산 복잡도를 의미하며, 계산 복잡도를 표기하는 대표적인 방법이 빅오다.
✔️ 시간 복잡도를 표기할 때는 최고차항만을 표기하며, 상수항도 무시한다.
ex.
4n^2 + 3n + 4
O(4n^2)
O(n^2)
빅오 표기법의 종류
1. O(1)
✔️ 입력값이 아무리 커도 실행 시간은 일정하다.
✔️ 해시테이블의 조회 및 삽입이 이에 해당한다.2. O(logN)
✔️ 대표적인 예로 Binary Search(이진 탐색)이 있다.3. O(n)
✔️ 선형 시간 알고리즘
✔️ 절렬되지 않은 리스트에서 최댓값, 최솟값을 찾는 경우가 이에 해당하며 값을 찾기 위해서는 모든 값을 적어도 한 번 이상은 살펴봐야 한다.4. O(nlogN)
✔️ 대표적인 예로 병합정렬이 있고, 대부분의 효율 좋은 정렬 알고리즘이 이에 해당한다.5. O(n^2)
✔️ 버블 정렬 같은 알고리즘이 이에 해당6. O(2^n)
✔️ 피보나치 수를 재귀로 계산하는 알고리즘이 이에 해당한다.7. O(n!)
✔️ TSP(Travelling Salesman Problem)
None
,int (정수형)
,float (실수형)
bool (불리언)
✔️ bool 또한 0과 1로 구성된 정수형 자료형이다.
set
✔️ set은 중복된 값을 갖지 않는 자료형이다.
✔️ 입력 순서가 유지되지 않는다.
dict
✔️ 매핑 타입은 키와 자료형으로 구성된 복합 자료형이다.
시퀀스
✔️ 불변 :str
,tuple
,bytes
✔️ 가변 :list
ex.
a = 'jaewon' b = [1, 2, 3, 4] a[0] = 'r' ## str은 불변이라 값을 바꿀 수 없음 b[0] = 100 ## 반면에 list는 가변이라 값을 바꿀 수 있음
✔️ is는 주소 값까지 일치해야 True 반환
✔️ ==는 값만 일치해도 True 반환
ex.
a = 5 b = 5 print(a == b) ## True print(a is b) ## True
a = [1, 2, 3] b = [1, 2, 3] print(a == b) ## True print(a is b) ## False