본문/내용
1. 알고리즘 복잡도 표현법 개요
알고리즘 복잡도 표현법은 알고리즘이 수행하는 연산의 수를 시간 또는 공간의 관점에서 수학적으로 나타내는 방법이다. 이를 통해 서로 다른 알고리즘의 성능을 비교하고, 최적의 알고리즘을 선택할 수 있다. 가장 일반적으로 사용하는 복잡도 표현법은 빅오 표기법(Big-O notation)이며, 최악의 경우 또는 평균적인 경우의 수행시간을 상한선으로 나타낸다. 빅오 표기법은 입력 크기 n이 무한대로 커질 때, 알고리즘의 수행 시간이 n에 대해 어떻게 증가하는지 보여준다. 예를 들어, 정렬 알고리즘에서 n개의 데이터를 정렬하는데 필요한 비교 연산의 수를 분석할 때, 그 성장세를 분석하는 것이다. 구체적으로, 일부 알고리즘은 최악의 경우 수행 시간이 n²으로 나타나는 반면, 다른 알고리즘은 n 로그 n 또는 더 낮은 복잡도를 가질 수 있다. 복잡도 분석은 단순히 수행 시간만을 고려하는 것이 아니라, 공간 복잡도도 포함되어, 프로그램이 필요로 하는 메모리 이용량을 평가한다. 일례로, 1000개의 데이터를 정렬하는 경우 버블 정렬은 최악의 경우 1,000,000번의 비교 작업이 필요하며, 이는 O(n²)로 표기한다. 반면, 병…