Published 2022. 6. 23. 12:00
본 문서는 어서와! 자료구조와 알고리즘은 처음이지? 강의를 보고 제 주관대로 정리한 글입니다.
알고리즘 복잡도 (Complexity of Algorithm)
- 시간 복잡도 (Time Complexity)
- 문제의 크기와 이를 해결하는 데 걸리는 시간 사이의 관계
- 평균 시간 복잡도 (Average Time Complexity)
- 임의의 입력 패턴을 가정했을 때 소요되는 시간의 평균
- 최악 시간 복잡도 (Worst-case Time Complexity)
- 가장 긴 시간을 소요하게 만드는 입력에 따라 소요되는 시간
- 공간 복잡도 (Space Complexty)
- 문제의 크기와 이를 해결하는 데 필요한 메모리 공간 사이의 관계
Big-O Notation
- 점근 표기법 중의 하나
- 알고리즘의 복잡도를 표현할 때 흔히 쓰임
- 입력의 크기가 n일 때, 얼마나 비례하는지 나타냄
- 계수는 별로 중요하지 않음
선형 시간 알고리즘 - O(n)
- e.g., n개의 무작위로 나열된 수에서 최댓값을 찾기 위해 선형 탐색 알고리즘을 적용
- 최댓값 - 끝까지 다 살펴보기 전까지는 알 수 없음
- Average case: O(n)
- Worst case: O(n)
로그 시간 알고리즘 - O(logn)
- e.g., n개의 크기 순으로 정렬된 수에서 특정 값을 찾기 위해 이진 탐색 알고리즘을 적용
이차 시간 알고리즘 - O(n2)
- e.g., 삽입 정렬 (Insertion Sort)
- Best case: O(n)
- Worst case: O(n2)
보다 낮은 복잡도를 가지는 정렬 알고리즘
- e.g., 병합 정렬 (Merge Sort) - O(nlogn)
- 정렬 문제에 대해 O(nlogn)보다 낮은 복잡도를 갖는 알고리즘은 없다는 게 수학적으로 증명됨
'자료구조와 알고리즘 > 어서와! 자료구조와 알고리즘은 처음이지?' 카테고리의 다른 글
| [어서와! 자료구조와 알고리즘은 처음이지?] 06. 큐 (0) | 2022.06.26 |
|---|---|
| [어서와! 자료구조와 알고리즘은 처음이지?] 05. 스택 (0) | 2022.06.24 |
| [어서와! 자료구조와 알고리즘은 처음이지?] 04. 연결 리스트 (0) | 2022.06.24 |
| [어서와! 자료구조와 알고리즘은 처음이지?] 02. 재귀 알고리즘 (0) | 2022.06.23 |
| [어서와! 자료구조와 알고리즘은 처음이지?] 01. 선형 배열 (0) | 2022.06.20 |