Big-O 표기법
- 알고리즘의 효율성을 나타내는 표기법
- 입력의 크기에 따라 알고리즘이 얼마나 많은 시간이나 공간을 필요로 하는지 설명
- Big-O 표기법은 알고리즘의 최악의 경우 성능을 나타냄
예시
- O(1) : 상수 시간, 입력의 크기에 상관 없이 항상 일정한 시간이 걸림
- O(n) : 선형 시간, 입력의 크기에 비례하여 시간이 걸림
- O(n^2) : 이차 시간, 입력의 크기의 제곱에 비례하여 시간이 걸림
- O(log n) : 로그 시간, 입력의 크기의 로그에 비례하여 시간이 걸림
계산방법
1. 상수 버리기 : 상수 항목이나 낮은 차수의 항목은 중요하지 않으므로 버림
ex) O(2n) -> O(n), O(3n^2) -> O(n^2)
2. 최고 차수 항목만 남기기 : 가장 빠르게 증가하는 항목에 초점을 맞춤
ex) O(n^2 + n) -> O(n^2)
3. 다항식의 경우 최고 차수 항목만 고려 : 가장 빠르게 증가하는 항목에 초점을 맞춤
ex) O(3n^3 + 5n^2 + 2n + 7) -> O(n^3)
4. 연산자 상수 무시
ex) O(3n^2 + 4n + 2) -> O(n^2)
'C# 알고리즘' 카테고리의 다른 글
OrderBy (1) | 2023.11.29 |
---|---|
LinkedList (링크드리스트) (0) | 2023.11.16 |
그리디 알고리즘 (0) | 2023.11.15 |
트리 (Tree) (0) | 2023.11.15 |
그래프 (Graph) (1) | 2023.11.15 |