알고리즘에서 시간 복잡도는 주어진 문제를 해결하기 위한 연산 횟수를 의미한다.
시간 복잡도 유형
빅-오메가: 최선일 때 연산 횟수를 나타낸 표기법
빅-세타: 보통일 때의 연산 횟수를 나타낸 표기법
빅-오: 최악일 때의 연산 횟수를 나타낸 표기법
코딩 테스트에서는 빅 - 오 표기법 O(n)을 기준으로 수행 시간을 계산하는 것이 좋다.
연산 횟수 계산 방법
연산 횟수 = 알고리즘 시간 복잡도 * 데이터의 크기
연산 횟수는 1초에 1억 번 연산하는 것을 기준으로 생각한다.
알고리즘 적합성 평가
1,000,000 개의 수를 정렬하는 문제일 경우에
버블 정렬 O(n^2)은 1,000,000 * 1,000,000 = 약 10억 번 연산
병합 정렬 1,000,000 * log(1,000,000) = 약 2,000만번 연산
데이터의 크기(N)을 단서로 사용하여 알고리즘을 추측해 볼 수 있다.
시간 복잡도 도출 기준
상수는 시간 복잡도 계산에서 제외한다.
가장 많이 중첩된 반복문의 수행 횟수가 시간 복잡도의 기준이 된다.
728x90
'자료구조 & 알고리즘' 카테고리의 다른 글
정렬 (0) | 2023.12.11 |
---|---|
재귀 알고리즘의 비재귀적 표현 (0) | 2023.12.10 |
유클리드 호제법(Euclidean algorithm) (0) | 2023.12.09 |
경우의 수(조합, 순열) (1) | 2023.12.07 |
구간 합 (0) | 2023.12.06 |