알고리즘(Algorithm) : 문제를 풀기 위한 단계적인 절차
알고리즘 기술방법 : 자연어, flow chart, 의사코드(Pseudo-code), 프로그래밍 언어
효율적인 알고리즘 = 시간복잡도 + 공간복잡도
시간복잡도는 절대적인 수행시간(X), 몇 번이나 연산들이 수행되는지를 표시한다.
빅오표기법 (시간복잡도를 표시하는 방법, 시간 복잡도 함수의 증가에 별로 기여하지 못하는 항을 생략함으로써 시간복잡도를 간단하게 표시), O(N) -> "빅오 of n", 차수가 가장 높은 항만 남긴다. 하지만 상수항이나 계수가 큰 경우, 수행시간에 큰 영향을 끼칠 수 있음을 유의해야 한다.
O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n) < O(n!)
상수형 < 로그형 < 선형 < 선형로그형 < 2차형 < 3차형 < 지수형 < 팩토리얼형 (지수형, 팩토리얼형은 사용이 어려움)
빅오표기법 이외의 표기법 - 빅오메가, 빅쎄타 표기법 등
반응형
'자료구조 + 알고리즘' 카테고리의 다른 글
(C++) 문자열 다루기 (0) | 2021.09.11 |
---|---|
Brute-force Search (0) | 2021.09.05 |
알고리즘 공부순서 (0) | 2021.09.05 |
소수 판별 알고리즘 - 에라토스테네스의 체 (0) | 2021.09.05 |
최대공약수(GCD), 최소공배수(LCM) (0) | 2021.09.05 |