개요
효율적인 알고리즘을 이야기 할때, 우린 항상 시간복잡도의 개념을 빠뜨리지 않는다. 알고리즘은 컴퓨터 과학과 소프트웨어 개발에서 핵심적인 역할을 하며, 특히 성능 향상, 자원 절약, 확장성, 비용절감 부분에서 비중이 크다고 할 수 있다. 물론 현대에서는 컴퓨터의 하드웨어적 성능향상으로 예전 프로그래밍 환경보다 덜 제한적이지만, 소프트웨어의 고도화에 있어서는 빼놓을 수 없는 것이 알고리즘이고, 그 알고리즘을 이야기 할때 시간복잡도가 그 척도가 된다. 오늘은 그 시간복잡도에 대해서 알아보자.
시간 복잡도란??
시간 복잡도는 알고리즘이 입력 데이터를 처리하는 데 걸리는 시간의 변화를 설명한다. 입력 데이터의 크기가 증가함에 따라 아록리즘의 실행 시간이 어떻게 변하는지를 나타내고 시간 복잡도는 알고리즘의 성능을 예측하고 비교하는 데 사용된다.