알고리즘의 효율을 측정할 때 우리는 복잡도(Complexity)라는 용어를 사용한다. 복잡도는 두 가지로 분류가 가능한데, 공간 복잡도(Space Complexity), 시간 복잡도(Time Complexity)이다. 공간 복잡도는 문제의 크기에 따라 알고리즘 수행에 필요한 메모리의 공간이 얼마나 필요한가를 의미한다.시간 복잡도는 문제의 크기에 따라 알고리즘 수행에 시간이 얼마나 걸리는가를 의미한다. 분석의 종류에는 여러가지가 있다. 입력 값들에 따라서 알고리즘의 수행 속도가 달라질 수 있다.예시로 수행 시간을 측정했는데 입력이 아주 운이 좋게 아무런 작업도 하지 않고 수행을 끝낼 수 있게 되는 최선의 경우(Best Case) vs 입력이 아주 나쁘게 들어와 한 번의 작업도 건너뛰지 말아야하는 최악의 경..