알고리즘의 성능은 시간 복잡도(Time complexity)와 공간 복잡도 (space complexity)로 표현한다. 시간 복잡도는 입력 값의 개수와 처리 시간과의 관계를 표현하고, 공간 복잡도는 입력 값의 개수와 메모리 증가량과의 관계를 표현한다. 시간 복잡도는 입력 값의 개수와 알고리즘의 처리 시간과의 상관관계를 표현한 말로 입력 데이터의 양이 많아짐에 따라 처리 속도가 어떻게 변화하는지를 수학의 기호를 빌려 표현하는 방식이다. 쉽게 생각해서 수학의 방정식을 떠올리면 된다. x축을 입력 값의 개수로 놓고 y축을 처리 시간으로 봤을 때, x가 증가함에 따라 y가 어떻게 변화하는지를 표현하는 것이다. x와 y가 일정한 비율로 증감한다면 선형(linear) 시간 복잡도를 가진다고 표현하며, 지수나 로그..