일반적으로 c++에서는 1억번의 연산횟수를 1초의 수행시간으로 예측 가능
오메가 표기법은 알고리즘의 최선의 경우(best case) 또는 하한 시간복잡도를 나타냄.
세타 표기법은 알고리즘의 평균적인 경우(average case) 또는 정확한 시간복잡도를 나타냄. 알고리즘의 상한과 하한이 동일할 때 사용됨
빅 오 표기법은 알고리즘의 최악의 경우(worst case) 또는 상한 시간복잡도를 나타냄. 알고리즘이 실행될 때 필요한 최대 시간 또는 공간을 표현하는 데 사용.
0~100 사이의 숫자에서 원하는 숫자를 찾는 Ω(n)의 시간 복잡도는 1, Θ(n)은 N/2, O(n)은 N이다.
코딩 테스트에서는 여러개의 테스트 케이스들을 사용하므로 빅오 표기법을 기준으로 해야한다.
O(n^2)을 O(nlogn)으로 낮춰야하는 경우가 많다
<aside> 💡
Q) N개의 수가 주어졌을 때 이를 오름차순으로 정렬하는 프로그램을 작성해라.
입력: 1≤N≤1000000 의 무작위 숫자 배열
</aside>
버블정렬 = O(n^2)
병합정렬 = O(nlogn)