자료 구조와 알고리즘
원소 수가 n인 배열에서 서로 다른 두 원소의 쌍을 모두 한 번씩 비교하는 처리(i번째 원소를 그보다 뒤에 있는 모든 원소와 비교하는 것을, i를 하나씩 늘려 가며 반복하는 이중 루프)의 시간 복잡도는?
- AO(n)
- BO(n log n)
- CO(n²)
정답과 해설 보기
정답: C. O(n²)
비교하는 쌍의 수는 (n−1) + (n−2) + … + 1 = n(n−1)/2이며, n = 10이면 45회, n = 1000이면 499,500회입니다. 시간 복잡도의 차수는 n이 커졌을 때의 증가 방식만 보므로, 계수 1/2이나 낮은 차수의 항을 생략하여 O(n²)으로 나타냅니다. n이 2배가 되면 횟수는 약 4배가 됩니다. O(n)은 모든 원소를 한 번씩 보기만 하는 처리, O(n log n)은 병합 정렬처럼 절반으로 나누기를 반복하는 처리의 시간 복잡도입니다.