Professional Documents
Culture Documents
ΠΛΗ30 - ΜΑΘΗΜΑ 1.4
ΠΛΗ30 - ΜΑΘΗΜΑ 1.4
ΠΛΗ30 - ΜΑΘΗΜΑ 1.4
1:
1.4:
T(n)=aT(n/b)+f(n)
.
.
1.
1. BinarySearch
2. MergeSort
2.
.
1. T(n)=aT(n/b)+f(n)
1.
2.
.
:
T(n)=aT(n/b)+f(n)
T(n)=aT(n/b)+f(n)
MergeSort
BinarySearch
.
1.
.
.
.
:
procedure recursive(n)
...
...
recursive(n-1)
...
...
end procedure
:
BinarySearch
MergeSort
.
1.
1. BinarySearch (1. )
BinarySearch :
: A, x
:
,
x .
, 0.
:
:
x, .
x
x
.
1.
1. BinarySearch (2. )
BinarySearch
procedure BinarySearch(A,x,start,finish)
if start>finish then
return 0
else
middle=(start+finish) div 2
if (x==A[middle]) then
return middle
else if (x<A[middle]) then
pos=BinarySearch(A,x,start,middle-1)
return pos
else if (x>middle) then
pos=BinarySearch(A,x,middle+1,finish)
return pos
end if
end if
end procedure
.
1.
1. BinarySearch (3. )
11 :
1
10
11
12
13
14
15
11
13
17
21
23
27
31
33
37
41
43
x<A[middle]
10
11
12
13
14
15
11
13
17
21
23
27
31
33
37
41
43
start
finish
x>A[middle]
10
11
12
13
14
15
11
13
17
21
23
27
31
33
37
41
43
start
finish
x<A[middle]
10
11
12
13
14
15
11
13
17
21
23
27
31
33
37
41
43
start
finish
x=A[middle]
10
11
12
13
14
15
11
13
17
21
23
27
31
33
37
41
43
start=finish
.
1.
1. BinarySearch (4. )
: x
.
T(n)=5 T(n)=(1).
: x :
T(n) n.
8
( 2
)
n
2 1
n
n, T(n), 2 1
T n2 1
1 .
n
T
(
n
)
=
T
1 + 9
:
2
n=0 1 ( )
.
1.
1. BinarySearch (4. )
:
1,
n=0
T ( n) = n
T
1 + 9, n > 0
2
,
:
n2 1 n2
:
1,
n=0
n
T (n) =
T + 9, n > 0
2
: T (n) = (log n)
10
.
1.
2. MergeSort (1. )
MergeSort :
: () A n
:
: :
11
.
1.
2. MergeSort (2. )
MergeSort
procedure MergeSort(A,start, finish)
if |A|<=2 then
else
middle=(start+finish) div 2
A1=MergeSort(A,start,middle)
A2=MergeSort(A,middle+1,finish)
A=Merge(A1,A2)
end if
end procedure
2
.
2
.
Merge
12
.
1.
2. MergeSort (2. )
Merge
:
procedure Merge(A,)
i=1, j=1, k=1
while (i<=n AND j<=m)
if (ai<bj) then
ck=ai ; i=i+1
else
ck=bj ; j=j+1
end if
k=k+1
end while
B C
return C
end procedure
||=n, |B|=m
13
.
1.
2. MergeSort (3. )
MergeSort(,1,16)
1
10
11
12
13
14
15
16
18
11
20
22
19
14
10
13
14
.
1.
2. MergeSort (3. )
MergeSort(,1,16)
1
10
11
12
13
14
15
16
18
11
20
22
19
14
10
13
10
11
12
13
14
15
16
18
11
20
22
19
14
10
13
15
.
1.
2. MergeSort (3. )
(A,1,8)
1
10
11
12
13
14
15
16
18
11
20
22
19
14
10
13
10
11
12
13
14
15
16
18
11
20
22
19
14
10
13
18
11
20
16
.
1.
2. MergeSort (3. )
(A,1,4)
1
10
11
12
13
14
15
16
18
11
20
22
19
14
10
13
10
11
12
13
14
15
16
18
11
20
22
19
14
10
13
18
11
20
18
11
17
.
1.
2. MergeSort (3. )
(A,1,2):
1
10
11
12
13
14
15
16
18
11
20
22
19
14
10
13
10
11
12
13
14
15
16
18
11
20
22
19
14
10
13
18
11
20
18
11
18
.
1.
2. MergeSort (3. )
(A,3,4):
1
10
11
12
13
14
15
16
18
11
20
22
19
14
10
13
10
11
12
13
14
15
16
18
11
20
22
19
14
10
13
18
11
20
18
11
19
.
1.
2. MergeSort (3. )
(A,1,4):
1
10
11
12
13
14
15
16
18
11
20
22
19
14
10
13
10
11
12
13
14
15
16
18
11
20
22
19
14
10
13
11
18
20
18
11
20
.
1.
2. MergeSort (3. )
(A,5,8)
1
10
11
12
13
14
15
16
18
11
20
22
19
14
10
13
10
11
12
13
14
15
16
18
11
20
22
19
14
10
13
11
18
20
18
11
20
21
.
1.
2. MergeSort (3. )
(A,5,6):
1
10
11
12
13
14
15
16
18
11
20
22
19
14
10
13
10
11
12
13
14
15
16
18
11
20
22
19
14
10
13
11
18
20
18
11
20
22
.
1.
2. MergeSort (3. )
(A,7,8):
1
10
11
12
13
14
15
16
18
11
20
22
19
14
10
13
10
11
12
13
14
15
16
18
11
20
22
19
14
10
13
11
18
20
18
11
20
23
.
1.
2. MergeSort (3. )
(A,5,8):
1
10
11
12
13
14
15
16
18
11
20
22
19
14
10
13
10
11
12
13
14
15
16
18
11
20
22
19
14
10
13
11
18
20
18
11
20
24
.
1.
2. MergeSort (3. )
(A,1,8):
1
10
11
12
13
14
15
16
18
11
20
22
19
14
10
13
10
11
12
13
14
15
16
11
18
20
22
19
14
10
13
11
18
20
18
11
20
25
.
1.
2. MergeSort (3. )
(9,16)
1
10
11
12
13
14
15
16
18
11
20
22
19
14
10
13
10
11
12
13
14
15
16
11
18
20
10
13
14
19
22
10
11
12
13
14
15
16
11
18
20
14
19
22
10
13
18
11
10
11
12
20
19
22
14
13
14
15
16
10
13
26
.
1.
2. MergeSort (3. )
(A,1,16):
1
10
11
12
13
14
15
16
10
11
13
14
18
19
20
22
10
11
12
13
14
15
16
11
18
20
10
13
14
19
22
10
11
12
13
14
15
16
11
18
20
14
19
22
10
13
18
11
10
11
12
20
19
22
14
13
14
15
16
10
13
27
.
1.
2. MergeSort (4. )
Merge :
T ( n) = (n + m)
MergeSort :
(1),
n =1 n = 2
n
T (n) = n
T
+ T + (n),
n>2
2
2
n n n
=
2 2 2
(1),
n =1 n = 2
T ( n) = n
2T
+ (n),
n>2
2
. : (n)=(nlogn)
28
.
1. T(n)=aT(n/b)+f(n)
T(n)=aT(n/b)+f(n)
:
,
,
(
).
:
,
.
( 2
3 ..)
.
.
1. T(n)=aT(n/b)+f(n)
1.
(Master Theorem) :
:
n
T ( n) = aT + f ( n)
b
T (n) = n logb a
f (n) = (n logb a ) :
log a +
) f (n) = (n b ) >0
n
a f c f (n) c<1, :
b
T (n) = ( f (n) )
29
30
.
1. T(n)=aT(n/b)+f(n)
1.
:
a,b f(n)
logba.
f(n) n log a :
b
log
f (n) = n
f (n) > n
(!
2 )
logb a
.
1. T(n)=aT(n/b)+f(n)
1. ( )
:
:
n
: T ( n) = 8T + n
:
: a = 8, b = 2,
3
: f (n) = n = O(n ) >0
T ( n ) = ( n 3 )
31
.
1. T(n)=aT(n/b)+f(n)
1. ( )
:
:
n
: T ( n) = 9T + n 2
:
: a = 9, b = 3,
f ( n) = n 2 , log b a = log 3 9 = 2
2
2
: f (n) = n = (n )
T (n) = (n 2 log n)
32
33
.
1. T(n)=aT(n/b)+f(n)
1. ( )
2 ,
n
c>0 a f b c f (n).
c a, b f(n) f(n/b).
:
n 3
: T ( n) = 4T + n
:
: a = 4, b = 2,
f ( n) = n 3 , log b a = log 2 4 = 2
3
2+
: f (n) = n = (n ) >0
c<1 :
3
n3
4
1
n
n
n
3
af cf (n) 4 f cf ( n) 4 cn 4 3 cn 3 c c
2
8
2
b
2
2
c<1.
:
T ( n ) = ( n 3 )
34
.
1. T(n)=aT(n/b)+f(n)
2.
T(n)=aT(n/b)+f(n),
:
1. 3 (
T (n) = ... T n3 + .... )
b
2. k (
T (n) = ... T nk + .... )
b
3. ( b k = n0 n0
k). .. n0=1
k=logbn
4. k 2.
5. .
35
.
1. T(n)=aT(n/b)+f(n)
2. ( 1: 3 )
1 3
.
,
n
:
5T
+ n,
: T (n) = 3
1,
n > 1
n = 1
n
T (n) = 5T + n
3
n n
n
n
= 55T 2 + + n = 52 T 2 + 5 + n
3
3
3 3
n n
n
n
n
n
= 5 5T 3 + 2 + 5 + n = 53 T 3 + 52 2 + 5 + n =
3
3
3
3
3 3
2
n
T (n) = 5T + n
3
n
n n
T = 5T 2 +
3
3 3
n
n n
T 2 = 5T 3 + 2
3
3 3
36
.
1. T(n)=aT(n/b)+f(n)
2. ( 2: k)
2 k
n
( T (n) = ... T b k + ....
()
n
n
n
= 53 T 3 + 5 2 2 + 5 + n =
3
3
3
= ... =
n
= 5k T k
3
n
k 1 n
2 n
+
...
+
5
+
5
+n
+5
k 1
2
3
3
3
37
.
1. T(n)=aT(n/b)+f(n)
2. ( 3: k)
n
= n0
bk
(
k).
()
n
=1
3k
n = 3k
log 3 n = log 3 3k
log 3 n = k log 3 3
k = log 3 n
n0
38
.
1. T(n)=aT(n/b)+f(n)
2. ( 4: k)
k
2.
.
()
k=log3n (n) :
n
n
n
n
T (n) = 5log 3 n T log3 n + 5log3 n 1 log3 n 1 + ... + 52 2 + 5 + n
3
3
3
3
n
n
n
= 5log3 n T (1) + 5log 3 n 1 log 3 n 1 + ... + 52 2 + 5 + n
3
3
3
n
n
n
= 5log3 n + 5log3 n 1 log3 n 1 + ... + 52 2 + 5 + n
3
3
3
39
.
1. T(n)=aT(n/b)+f(n)
2. ( 5: )
.
: x = x 1
n +1
i =0
()
n
n
+
5
+n=
log 3 n 1
2
3
3
3
n
n
n
i
log 3 n 1 i n
log 3 n 1 5
log 3 n
log 3 n
=5
+ i =0 5 i = 5
+ ni =0
=
i
3
3
x 1
+ ... + 52
log n 1
5
=5
+ ni =0 = 5log3 n + ni =03 1,66i =
3
1,66log3 n 1+1 1 log3 n
log 3 n
=5
+n
=5
+ 1,5 n 1,66log3 n 1,5n
1,66 1
log 3 n
log 3 n 1
.
1
:
A)
B)
C)
n
T (n) = 8T + n 2
2
n
T (n) = 8T + n 3
2
n 4
T (n) = 8T + n
2
40
.
2
:
A)
B)
n
T (n) = 5T + n 2
2
n
T (n) = 5T + n 3
2
41
.
3
:
n
6T
+ n,
A) T (n) = 2
1,
n 2
4T
+n ,
B) T (n) = 3
1,
n > 1
n = 1
n > 1
n = 1
42