hyelie
hyelie
Hyeil Jeong
       
글쓰기    관리    수식입력
  • 전체보기 (495)
    • PS (283)
      • Algorithm (28)
      • PS Log (244)
      • Contest (6)
      • Tips (5)
    • Development (52)
      • Java (14)
      • Spring (23)
      • SQL (2)
      • Node.js (2)
      • Socket.io (3)
      • Study (4)
      • Utils (4)
    • DevOps (36)
      • Git (5)
      • Docker (4)
      • Kubernetes (2)
      • GCP (3)
      • Environment Set Up (8)
      • Tutorial (12)
      • Figma (2)
    • CS (74)
      • OOP (7)
      • OS (24)
      • DB (2)
      • Network (24)
      • Architecture (0)
      • Security (2)
      • Software Design (0)
      • Parallel Computing (15)
    • Project (15)
      • Project N2T (5)
      • Project ASG (0)
      • Project Meerkat (1)
      • Model Checking (7)
      • Ideas (2)
    • 내가 하고싶은 것! (34)
      • Plan (16)
      • Software Maestro (10)
      • 취준 (8)
hELLO · Designed By 정상우.
hyelie

hyelie

PS/Algorithm

PS에서 Master Theorem

Master Theorem은 알고리즘의 동작 시간을 대략의 수행시간을 big O notation으로 계산하는 방법이다.

 

일반적으로 divide-and-conquer와 같은 recursion에서 자주 사용하며, 입력이 n개인 task를 문제를 입력이 n/b개인 a개의subtask로 나눴을 때, 그 subtask를 f(n)만에 해결할 수 있다면 아래 식과 같이 표현한다.

 

$T(n) = aT(\frac{n}{b}) + f(n)$ (단, a >= 1, b > 1, p >= 0)

 

 Master Theorem은 T(n)에 관한 점화식을 푼다. 그러나 대부분의 PS에서 f(n)은 $\Theta(n^{k}log^{p}n)$으로 정의되니, 이 식에서 답을 도출해 볼 것이다.

 

1. if $log_{b}a < k (\Leftrightarrow a < b^{k})$ then $T(n) = \Theta(n^{k}log^{p}n)$

  • task를 subtask로 나누는 것의 load가 subtask의 load보다 큰 경우이다.

2. if $log_{b}a = k (\Leftrightarrow a = b^{k})$ then $T(n) = \Theta(n^{log_{b}a}log_{p+1}n)$

  • subtask의 load와 task를 subtask로 나누는 것의 load와 비슷한 경우이다.

3. if $log_{b}a > k (\Leftrightarrow a > b^{k})$ then $T(n) = \Theta(n^{log_{b}a})$

  • subtask의 load가 task를 subtask로 나누는 것의 load보다 큰 경우이다.

 

예를 들어, merge sort는 T(n) = 2T(n/2) + O(n)이다. $log_{2}2$ == 1이므로 2)의 case에 해당되고, $\Theta(nlogn)$이 된다.

'PS > Algorithm' 카테고리의 다른 글

그래프 알고리즘 - (2) 넓이 우선 탐색 & 깊이 우선 탐색 BFS & DFS  (0) 2022.06.22
그래프 알고리즘 - (1) Graph의 기본  (0) 2022.06.22
이진탐색 Binary Search, Lower/Upper Bound, Parametric Search  (0) 2022.06.22
순열, 조합, 중복순열, 중복조합 - 코드  (0) 2022.06.22
순열, 조합, 중복순열, 중복조합 - 개념  (0) 2022.06.22
    hyelie
    hyelie

    티스토리툴바