어떤 문제나 목적을 달성하기 위해 거쳐야 하는 여러 과정들
Big-O 표기법이란?
알고리즘 성능을 수학적으로 표기해주는 표기법
공간 복잡도도 시간 복잡도와 마찬가지로 Big-O 표기법 사용
시간복잡도와 공간복잡도에 대해 설명해주세요.
좋은 알고리즘이란 작은 메모리 공간을 차지하면서 적은 시간 내에 주어진 임무를 수행하는 알고리즘이다.
이 알고리즘을 평가할 때, 수행시간과 메모리 사용량을 평가 기준으로 두는 데, 이 각각에 해당하는 사항이 시간복잡도와, 공간 복잡도임.
시간 복잡도는 알고리즘의 수행시간의 분석 결과를 말하고, 공간 복잡도는 알고리즘의 메모리 사용량에 대한 분석 결과를 말함.
O(1)은 O(N^2) 보다 무조건적으로 빠른가요?
시간복잡도가 작다고 해서 무조건 그 알고리즘이 빠르지는 않다. 왜냐하면 시간복잡도의 경우에는 보통 최악의 수행시간을 나타내기 때문
Big-O 표기법의 시간 복잡도 크기 순서를 말해주세요
O(1) < O(log N) < O(N) < O(N log N) < O(N^2) < O(2^N) < O(N!)
다른 것을 사용하지 않고, Big-O를 사용하는 이유가 있을까요?
알고리즘의 최악의 경우에 대응해야되기 때문이다.