시간복잡도를 안다고 해서 실제 성능을 예측할 수 있는 것은 아니다
시간복잡도는 수학적인 모델을 기반으로 알고리즘의 이론적 성능을 예측할 뿐, 실제 실행 환경의 외부 요인은 고려하지 않는다. 예를 들어, 하드웨어 구성이나 캐시의 동작 방식에 따라 예측보다 느리거나 오히려 더 빠르게 동작할 수도 있다.
출력 시 버퍼를 비우는 방식에 따라서도 성능에 차이가 생긴다. 예컨대, C++의 cout
은 기본적으로 C의 printf
보다 느린데, 이는 스트림 동기화 및 버퍼링 방식 차이 때문이다.
확장 🌱
- 그럼에도 불구하고 성능을 판별하는데 시간복잡도가 여전히 널리 사용되는 이유는?
관련 노트 📘
- 250515204930 - 시간복잡도를 알아야 프로그램의 성능을 예측할 수 있다