다음 C 코드에서 사용한 재귀 알고리즘의 시간 복잡도는? (단, n은 … | [7급 국가직 알고리즘] 24년 1회차 기출문제 상세 페이지
1[7급 국가직 알고리즘] 24년 1회차
다음 C 코드에서 사용한 재귀 알고리즘의 시간 복잡도는? (단, n은 배열의 크기이다)int S(int A[ ], int n){
if( n <= 0 ) return 0;
else return A[n-1] + S(A, n/2);
}
1
2
3
4
해설
이 재귀 알고리즘의 시간 복잡도는 이다.
호출 한 번마다 덧셈 하나의 상수 작업을 하고, 크기를 절반으로 줄여 한 번만 재귀하므로 점화식은 이다.
n이 0 이하가 될 때까지 절반씩 줄어드는 횟수는 약 회이므로 전체 시간은 이다.
- 은 크기를 1씩 줄이는 재귀 의 복잡도이다.
- 은 두 번 재귀하고 선형 작업을 하는 의 복잡도이다.
- 은 크기를 1씩 줄이며 매번 선형 작업을 하는 의 복잡도이다.
오류나 개정된 내용이 보이면 알려주세요