第一次期中考數學(數資班、科學班)

12  Download (2)

全文

(1)

http://academy.hanb.co.kr

쉽게 배우는 알고리즘

4장. 선택 알고리즘

IT COOKBOOK IT COOKBOOK

4장. 선택 알고리즘

일을 시작하기 위해 기분이 내킬 때까지 기다

리는 따위의 짓을

하지 않으려면 시험 제도는 좋은 훈련이 된다.

-아놀드 토인비

(2)

- 3 - 한빛미디어㈜

학습목표

• 평균 선형시간 선택 알고리즘의 원리를 이해

한다.

• 평균 선형시간 선택 알고리즘의 수행시간 분

석을 이해한다.

• 최악의 경우 선형시간 선택 알고리즘의 원리

를 이해한다.

• 최악의 경우 선형시간 선택 알고리즘의 수행

시간 분석을 이해한다.

• 평균 선형시간 선택 알고리즘과 최악의 경우

선형시간 선택 알고리즘의 관계를 이해한다

숙명여대 멀티미디어과학과 사운드콘텐츠응용(알고리즘) IT COOKBOOK IT COOKBOOK

Selection (i 번째 작은 수 찾기)

• 배열 A[p ... r]에서 i번째 작은 원소를 찾는다

• 두가지 알고리즘을 배운다

– 평균적으로 선형시간이 소요되는 알고리즘

– 최악의 경우에도 선형시간이 소요되는 알고리즘

(3)

숙명여대 멀티미디어과학과 사운드콘텐츠응용(알고리즘)

평균 선형시간 Selection Algorithm

select (A, p, r, i)

▷ 배열 A[p ... r]에서 i번째 작은 원소를 찾는다

{

if(p = r) then returnA[p] ; ▷ 원소가 하나뿐인 경우. i는 반드시 1. q ← partition(A, p, r) ;

k ← q-p+1; k: 기준원소가 전체에서k번째 작은 원소임을 의미

if(i < k) then returnselect(A, p, q-1, i) ; ▷ 왼쪽 그룹으로 범위를 좁힘

else if(i = k) then returnA[q] ; ▷ 기준원소가 바로 찾는 원소임

else returnselect(A, q+1, r, i-k) ; ▷ 오른쪽 그룹으로 범위를 좁힘

} ü평균 수행시간: Θ(n) ü최악의 경우 수행시간: Θ(n2) IT COOKBOOK IT COOKBOOK 31 8 48 73 11 3 20 29 65 15 p r 8 11 3 15 31 48 20 29 65 73 입력배열 분할 2번째 작은 원소 찾기 8 11 3 15 31 48 20 29 65 73

작동 예 1

(4)

숙명여대 멀티미디어과학과 사운드콘텐츠응용(알고리즘) 31 8 48 73 11 3 20 29 65 15 p r 8 11 3 15 31 48 20 29 65 73 8 11 3 15 31 48 20 29 65 73 입력배열 분할 오른쪽 그룹에서 3번째 작은 원소를 찾는다 7번째 작은 원소 찾기 4개

작동 예 2

숙명여대 멀티미디어과학과 사운드콘텐츠응용(알고리즘) IT COOKBOOK IT COOKBOOK

평균 수행시간

T(n) ≤

Σ

max[T(k-1), T(n-k)] + Θ(n)

이것은 T(n) ≤ cn임을 추정 후 증명법으로 증명할 수 있다

T(n) =

O(n)

T(n) = Ω(n)임은 자명하므로 T(n) =

Θ(n)

n

1

k=1 n 분할된 양쪽 중 큰 쪽을 처리하는 비용 재귀호출을 재외한 오비헤드 (분할이 대부분)

(5)

숙명여대 멀티미디어과학과 사운드콘텐츠응용(알고리즘)

최악의 경우 수행시간

T(n) = T(n-1) + Θ(n)

T(n) =

Θ(n

2

)

분할이 계속 0 : n-1로 되고 큰 쪽을 처리하는 비용 재귀호출을 재외한 오비헤드 (분할이 대부분) IT COOKBOOK IT COOKBOOK

최악의 경우 선형시간 Selection Algorithm

• 앞에서 배운 selection algorithm에서 수행시간은 분할의

균형에 영향을 받는다.

– 예) 계속 0:n-1로 분할되고, 찾고자 하는 원소가 운 나쁘게도 큰 그룹에 계속 속한다면T(n) = Θ (n2)이 됨.

• 그러나 분할 균형이 나빠 보여도 일정한 상수비만 넘지

않으면 점근적 복잡도는 항상

Θ (n)

이다.

– 계속 1:9로 분할된다면? • T(n) = T() + Θ (n) 이 되어 T(n) = Θ (n)이 된다. – 계속 1:99로 분할된다면? • T(n) = T() + Θ (n)이 되어 역시 T(n) = Θ (n)이 된다.

è 이 같은 사실에 착안하여…

(6)

숙명여대 멀티미디어과학과 사운드콘텐츠응용(알고리즘)

최악의 경우 선형시간 Selection Algorithm

• 이번 알고리즘은

– 최악의 경우 분할의 균형이 어느 정도 보장되도록

함으로써 수행시간이

Θ(n)이 되도록 한다

– 하지만 분할의 균형을 유지하기 위한 오버헤드가

지나치게 크면 안 된다.

숙명여대 멀티미디어과학과 사운드콘텐츠응용(알고리즘) IT COOKBOOK IT COOKBOOK linearSelect(A, p, r, i)배열 A[p ... r]에서 i번째 작은 원소를 찾는다 { ①원소의 총 수가 5개 이하이면 원하는 원소를 찾고 알고리즘을 끝낸다. ② 전체 원소들을 5개씩의 원소를 가진 개의 그룹으로 나눈다. (원소의 총수가 5의 배수가 아니면 이중 한 그룹은 5개 미만이 된다.) ③ 각 그룹에서 중앙값을 (원소가 5개이면 3번째 원소) 찾는다. 이렇게 찾은 중앙값들을 m1, m2, …, m n/5 이라 하자. ④ m1, m2, …, m n/5들의 중앙값 M을 재귀적으로 구한다. 원소의 총수가 홀수면 중앙값이 하나이므로 문제가 없고, 원소의 총수가 짝수일 경우는 두 중앙값 중 아무거나 임의로 선택한다. ▷ call linearSelect( ) ⑤ M을 기준원소로 삼아 전체 원소를 분할한다. (M보다 작거나 같은 것은 M의 왼쪽에, M보다 큰 것은 M의 오른쪽에 오도록) ⑥ 분할된 두 그룹 중 적합한 쪽을 선택하여 단계 1~6을 재귀적으로 반복한다. ▷ call linearSelect( ) }

(7)

숙명여대 멀티미디어과학과 사운드콘텐츠응용(알고리즘) ●/■M보다 큰 원소들 ●/■M보다 작거나 같은 원소들 ○/□ M보다 크거나 작을 수 있는 원소들 ■ 기준 원소. 즉 중앙값들의 중앙값 각 그룹의 중앙값 → 그 룹 1 그 룹 2 그 룹 3

M

기준 원소를 중심으로 한 대소 관계

IT COOKBOOK IT COOKBOOK

• ●

/

로 표시된 원소: M으로 분할하면 M의

오른쪽 그룹에 속함

• ●

/

로 표시된 원소: M으로 분할하면 M의 왼쪽

그룹에 속함

• ○/□로 표시된 원소들은 M과의 대소관계에

따라 왼쪽그룹과 오른쪽 그룹으로 흩어질 것임

– 이들이 반반 나눠지면 매우 바람직하겠지만,

– 최악의 경우 어느 한쪽으로 몰리더라도 분할 균형이

어느 정도는 유지될 수 있을까?

기준 원소를 중심으로 한 대소 관계 분석

(8)

숙명여대 멀티미디어과학과 사운드콘텐츠응용(알고리즘)

최악의 경우 수행시간

T(n) ≤ T( n/5 ) + T(7n/10 + 2) + Θ(n)

①②③⑤

이것은 T(n) ≤ cn임을 추정 후 증명법으로 증명할 수 있다

T(n) =

O(n)

T(n) = Ω(n)임은 자명하므로 T(n) =

Θ(n)

16 -IT COOKBOOK IT COOKBOOK 한빛미디어㈜

Thank you

數據

Updating...

參考文獻

相關主題 :