2022. 8. 2. 21:11ㆍSTUDY/알고리즘
* 점근적 표기법 이란?
상수 계수와 중요하지 않은 항목을 제거한것 !
점근적 표기법에는 3가지가 있다.
- big- 표기법
> 보통 상수 인자와 낮은 차원의 항목은 생략하고 사용한다. 예를들어 시간이 6n^2 + 100n + 300이라고 가정하면,
계수인 6과 저차원 항목인 100n+300을 생략한 n^2만 실행시간으로 치는것이다.
big-세타 표기법을 사용하는건, 실행시간에 대해 점근적으로 근접한 한계값이 있다고 표현하는것이다.
점근적으로 ! 라는 말을 쓰는 이유는, 큰 값의 n에 대해서만 적용되기 때문이다. 근접한 한계값이라는 말은, 위, 아래로 상수값 내에서 실행시간을 좁힐 수 있다는 뜻이다.
- big-O 표기법
> 점근적 상한선 표기법. "실행 시간은 최대한 이만큼 커지지만, 더 천천히 커질 수도 있다. !" 는 의미.
이는 충분히 큰 입력 크기에 대하여 실행 시간에 상한값을 두고 제한한다.
증가율에 따라 함수를 종류대로 나열하면 다음과 같다.
상수함수 -> 로그 함수 -> 선형 함수 -> 2차형 함수 -> 다항 함수 -> 지수 함수
* 로그 함수에서 밑이 작은 함수가 밑이 큰 함수 보다 더 빠르게 증가한다.
예를들어 순서대로 나열해보면 다음과 같다.
64 -> log8n -> log2n -> 4n -> nlog6n -> nlog2n -> 8n^2 -> 6n^3 -> 8^2n
- big- 표기법
> 점근적 하한선을 표현하기 위한 표기법이다. 그 이유는, 점근적 하한선은 충분히 큰 입력 크기에서 실행시간을 밑에서 제한하기 때문.
'STUDY > 알고리즘' 카테고리의 다른 글
Two Pointer (C++) (2) | 2022.08.11 |
---|---|
유클리드 호제법 (Euclidean Algorithm) in C (2) | 2022.08.03 |
Adjacency list in C (0) | 2022.07.30 |
About Graph & BFS,DFS (0) | 2022.07.18 |
qsort - Quick sort in c (2) | 2022.07.05 |