분할 정복
[알고리즘 소개]
거듭제곱을 빠른 속도로 구하는 알고리즘
[코딩 방법 / 재귀]
- $n^r$을 $n^{\frac{r}{2}}$ 두 개로 분할 후 서로 곱함
- r이 홀수였다면 추가로 n을 곱하고 return
- r == 0인 경우 1을 return
[코딩 방법 / 반복문]
- base = 1, temp = n으로 시작
- r > 0까지 반복
- r이 홀수라면 base에 temp를 곱함
- temp는 모든 반복마다 제곱
- r은 모든 반복마다 2로 나눔
[시간 복잡도]
$O(logn)$
[공부용 링크]
'정리 > 알고리즘' 카테고리의 다른 글
[알고리즘] 페르마의 소정리를 이용한 이항 계수 (2) | 2021.03.27 |
---|---|
[알고리즘] 파스칼의 삼각형 (Pascal's Triangle) (0) | 2021.03.26 |
[알고리즘] 유클리드 호제법 (Euclidean Algorithm) (0) | 2021.03.25 |
[알고리즘] 플로이드-와샬 (Floyd-Warshall) (0) | 2021.03.25 |
[알고리즘] 벨만-포드 (Bellman-Ford) (0) | 2021.03.21 |