SlideShare a Scribd company logo
1 of 3
Download to read offline
Week10. 퀵소트의 성능
1/2에 가깝게 분할할 수 있는가?
나쁜 분할 좋은 분할
T(n) = T(n-1) + T(0) + θ(n)
= T(n2)
T(n) = 2T(n/2) + θ(n)
= T(n lg n)
Week10. 퀵소트의 성능
균등하게 분할하는 것이 수행속도에 영향을 미치는가?
Week10. 랜덤화된 퀵정렬
평균적으로 입력이 어떤 모습일까?
좋은 분할과 나쁜 분할이 섞여 있다
최악을 피하기 위해 입력을 평균적인 경우로 직접 만들자
평균에 가깝게 하기 위해 입력을 무작위로 한번 더 섞자
RANDOMIZED-PARTITION
i = RANDOM(p, r)
A[r] <-> A[i]
return PARTITION(A, p, r)
RANDOMIZED-QUICKSORT
if (p < r)
q = RANDOMIZED-PARTITION(A, p, r)
RANDOMIZED-QUICKSORT(A, p, q - 1)
RANDOMIZED-QUICKSORT(A, q + 1, r)

More Related Content

More from HansolJang5

Week9 certificate
Week9 certificateWeek9 certificate
Week9 certificateHansolJang5
 
Week7. sso and oauth
Week7. sso and oauthWeek7. sso and oauth
Week7. sso and oauthHansolJang5
 
Week1. 물리계층과 데이터링크 계층
Week1. 물리계층과 데이터링크 계층Week1. 물리계층과 데이터링크 계층
Week1. 물리계층과 데이터링크 계층HansolJang5
 

More from HansolJang5 (6)

Week9 certificate
Week9 certificateWeek9 certificate
Week9 certificate
 
Week8 code
Week8 codeWeek8 code
Week8 code
 
Week7. sso and oauth
Week7. sso and oauthWeek7. sso and oauth
Week7. sso and oauth
 
Week3.network
Week3.networkWeek3.network
Week3.network
 
Week2.network
Week2.networkWeek2.network
Week2.network
 
Week1. 물리계층과 데이터링크 계층
Week1. 물리계층과 데이터링크 계층Week1. 물리계층과 데이터링크 계층
Week1. 물리계층과 데이터링크 계층
 

Week10 quicksort performance

  • 1. Week10. 퀵소트의 성능 1/2에 가깝게 분할할 수 있는가? 나쁜 분할 좋은 분할 T(n) = T(n-1) + T(0) + θ(n) = T(n2) T(n) = 2T(n/2) + θ(n) = T(n lg n)
  • 2. Week10. 퀵소트의 성능 균등하게 분할하는 것이 수행속도에 영향을 미치는가?
  • 3. Week10. 랜덤화된 퀵정렬 평균적으로 입력이 어떤 모습일까? 좋은 분할과 나쁜 분할이 섞여 있다 최악을 피하기 위해 입력을 평균적인 경우로 직접 만들자 평균에 가깝게 하기 위해 입력을 무작위로 한번 더 섞자 RANDOMIZED-PARTITION i = RANDOM(p, r) A[r] <-> A[i] return PARTITION(A, p, r) RANDOMIZED-QUICKSORT if (p < r) q = RANDOMIZED-PARTITION(A, p, r) RANDOMIZED-QUICKSORT(A, p, q - 1) RANDOMIZED-QUICKSORT(A, q + 1, r)