- 시간복잡성
- 공간 복잡성
여러가지 코드를 일반적으로 서로 비교하고 성능을 평가하는 방법
코드의 연산 시간을 통해 코드를 평가하는 것은 한계가 있음
-> 기기에 따라 속도가 다를 수 있고 실행해보지 않는 이상 알 수 가 없기때문임
이를 해결하기 위해 빅오를 사용하여 어떤 코드가 더 나은 코드인지 평가 할 수 있음
-> 알고리즘에 실행시간이 어떻게 변하는지 설명하는 공식적인 방식
선형: f(n) = n, f(n)= n^2
상수: f(n) = 1, n이 커져도 아무영향이 없음
빅오
1. 산수는 상수
2, 변수 선언 상수 , int n =100이건 int n =1이건 똑같음
3. 배열, 맵, 배열이나 맵에서 데이터 찾을때도 똑같은 시간 걸림 10번째값을 가져오던 1000번째 값을 가져오던 같음
4. 루프: 루프는 배열의 길이만큼 N이 늘어남
빅오는 정확히 얼마가 걸린다를 알아내는 것이 아니라 추세를 알아내는것임
5n = n, 5n^3+4n^2+3n = n^3