Upload
dimitris-psounis
View
25
Download
0
Embed Size (px)
DESCRIPTION
ΠΛΗ30 - ΜΑΘΗΜΑ 1.4
Citation preview
30 1:
1.4:
T(n)=aT(n/b)+f(n)
.
.
1.
2 , 30, 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. 2.
.
.
:
3 , 30, 1.4: T(n)=aT(n/b)+f(n)
T(n)=aT(n/b)+f(n)
T(n)=aT(n/b)+f(n)
MergeSort BinarySearch
. 1.
4 , 30, 1.4: T(n)=aT(n/b)+f(n)
. .
.
.
:procedure recursive(n)
...
...
:
BinarySearch MergeSort
...
recursive(n-1)...
...
end procedure
. 1. 1. BinarySearch (1. )
5 , 30, 1.4: T(n)=aT(n/b)+f(n)
BinarySearch : : A, x : A, x:
,
x .
, 0.
: : :
x, .
x
x
. 1. 1. BinarySearch (2. )
6 , 30, 1.4: T(n)=aT(n/b)+f(n)
BinarySearch procedure BinarySearch(A,x,start,finish)procedure BinarySearch(A,x,start,finish)
if start>finish then return 0
else middle=(start+finish) div 2if (x==A[middle]) then
return middleelse if (xmiddle) thenpos=BinarySearch(A,x,middle+1,finish)return pos
end ifend if
end procedure
. 1. 1. BinarySearch (3. )
7 , 30, 1.4: T(n)=aT(n/b)+f(n)
11 :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
: BinarySearch(A,11,1,15): middle=(1+15) div 2=8. xA[middle]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
2 3 5 7 11 13 17 21 23 27 31 33 37 41 43
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
2 3 5 7 11 13 17 21 23 27 31 33 37 41 43
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
2 3 5 7 11 13 17 21 23 27 31 33 37 41 43
start
start
finish
finish
: BinarySearch(A,11,5,7) : middle=(5+7) div 2=6 x
. 1. 1. BinarySearch (4. )
8 , 30, 1.4: T(n)=aT(n/b)+f(n)
: x . .
T(n)=5 T(n)=(1). : x :
T(n) n. 8
( 2 )
1
n
n, T(n),
1 . :
n=0 1 ( )
12
n
12
n
12nT
912
)( +
=
nTnT
. 1. 1. BinarySearch (4. )
9 , 30, 1.4: T(n)=aT(n/b)+f(n)
:
= 0,1 n
,
:
:
>+
=
= 0,912
0,1)(
nnT
n
nT
12
n
2n
:
:
>+
=
= 0,92
0,1)(
nnT
n
nT
)(log)( nnT =
. 1. 2. MergeSort (1. )
10 , 30, 1.4: T(n)=aT(n/b)+f(n)
MergeSort : : () A n : () A n :
: :
.
. 1. 2. MergeSort (2. )
11 , 30, 1.4: T(n)=aT(n/b)+f(n)
MergeSort procedure MergeSort(A,start, finish)procedure MergeSort(A,start, finish)
if |A|
. 1. 2. MergeSort (2. )
12 , 30, 1.4: T(n)=aT(n/b)+f(n)
Merge : :procedure Merge(A,)
i=1, j=1, k=1while (i
. 1. 2. MergeSort (3. )
13 , 30, 1.4: T(n)=aT(n/b)+f(n)
MergeSort(,1,16)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
18 7 4 11 9 20 6 1 22 19 14 5 2 9 10 13
. 1. 2. MergeSort (3. )
14 , 30, 1.4: T(n)=aT(n/b)+f(n)
MergeSort(,1,16)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
1 2 3 4 5 6 7 8
18 7 4 11 9 20 6 19 10 11 12 13 14 15 16
22 19 14 5 2 3 10 13
. 1. 2. MergeSort (3. )
15 , 30, 1.4: T(n)=aT(n/b)+f(n)
(A,1,8)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
1 2 3 4 5 6 7 8
18 7 4 11 9 20 6 19 10 11 12 13 14 15 16
22 19 14 5 2 3 10 13
1 2 3 4
18 7 4 115 6 7 8
9 20 6 118 7 4 11 9 20 6 1
. 1. 2. MergeSort (3. )
16 , 30, 1.4: T(n)=aT(n/b)+f(n)
(A,1,4)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
1 2 3 4 5 6 7 8
18 7 4 11 9 20 6 19 10 11 12 13 14 15 16
22 19 14 5 2 3 10 13
1 2 3 4
18 7 4 115 6 7 8
9 20 6 118 7 4 11 9 20 6 1
1 2
18 73 4
4 11
. 1. 2. MergeSort (3. )
17 , 30, 1.4: T(n)=aT(n/b)+f(n)
(A,1,2): 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
1 2 3 4 5 6 7 8
18 7 4 11 9 20 6 19 10 11 12 13 14 15 16
22 19 14 5 2 3 10 13
1 2 3 4
18 7 4 115 6 7 8
9 20 6 118 7 4 11 9 20 6 1
1 2
7 183 4
4 11
. 1. 2. MergeSort (3. )
18 , 30, 1.4: T(n)=aT(n/b)+f(n)
(A,3,4): 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
1 2 3 4 5 6 7 8
18 7 4 11 9 20 6 19 10 11 12 13 14 15 16
22 19 14 5 2 3 10 13
1 2 3 4
18 7 4 115 6 7 8
9 20 6 118 7 4 11 9 20 6 1
1 2
7 183 4
4 11
. 1. 2. MergeSort (3. )
19 , 30, 1.4: T(n)=aT(n/b)+f(n)
(A,1,4): 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
1 2 3 4 5 6 7 8
18 7 4 11 9 20 6 19 10 11 12 13 14 15 16
22 19 14 5 2 3 10 13
1 2 3 4
4 7 11 185 6 7 8
9 20 6 14 7 11 18 9 20 6 1
1 2
7 183 4
4 11
. 1. 2. MergeSort (3. )
20 , 30, 1.4: T(n)=aT(n/b)+f(n)
(A,5,8)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
1 2 3 4 5 6 7 8
18 7 4 11 9 20 6 19 10 11 12 13 14 15 16
22 19 14 5 2 3 10 13
1 2 3 4
4 7 11 185 6 7 8
9 20 6 14 7 11 18 9 20 6 1
1 2
7 183 4
4 11
5 6
9 207 8
6 1
. 1. 2. MergeSort (3. )
21 , 30, 1.4: T(n)=aT(n/b)+f(n)
(A,5,6): 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
1 2 3 4 5 6 7 8
18 7 4 11 9 20 6 19 10 11 12 13 14 15 16
22 19 14 5 2 3 10 13
1 2 3 4
4 7 11 185 6 7 8
9 20 6 14 7 11 18 9 20 6 1
1 2
7 183 4
4 11
5 6
9 207 8
6 1
. 1. 2. MergeSort (3. )
22 , 30, 1.4: T(n)=aT(n/b)+f(n)
(A,7,8): 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
1 2 3 4 5 6 7 8
18 7 4 11 9 20 6 19 10 11 12 13 14 15 16
22 19 14 5 2 3 10 13
1 2 3 4
4 7 11 185 6 7 8
9 20 6 14 7 11 18 9 20 6 1
1 2
7 183 4
4 11
5 6
9 207 8
1 6
. 1. 2. MergeSort (3. )
23 , 30, 1.4: T(n)=aT(n/b)+f(n)
(A,5,8): 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
1 2 3 4 5 6 7 8
18 7 4 11 9 20 6 19 10 11 12 13 14 15 16
22 19 14 5 2 3 10 13
1 2 3 4
4 7 11 185 6 7 8
1 6 9 204 7 11 18 1 6 9 20
1 2
7 183 4
4 11
5 6
9 207 8
1 6
. 1. 2. MergeSort (3. )
24 , 30, 1.4: T(n)=aT(n/b)+f(n)
(A,1,8): 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
1 2 3 4 5 6 7 8
1 4 6 7 9 11 18 209 10 11 12 13 14 15 16
22 19 14 5 2 3 10 13
1 2 3 4
4 7 11 185 6 7 8
1 6 9 204 7 11 18 1 6 9 20
1 2
7 183 4
4 11
5 6
9 207 8
1 6
. 1. 2. MergeSort (3. )
25 , 30, 1.4: T(n)=aT(n/b)+f(n)
(9,16)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
1 2 3 4 5 6 7 8
1 4 6 7 9 11 18 209 10 11 12 13 14 15 16
2 3 5 10 13 14 19 22
1 2 3 4
4 7 11 185 6 7 8
1 6 9 209 10 11 12
5 14 19 2213 14 15 16
2 3 10 134 7 11 18 1 6 9 20
1 2
7 183 4
4 11
5 6
9 207 8
1 6
5 14 19 22 2 3 10 13
9 10
19 2211 12
5 14
13 14
2 315 16
10 13
. 1. 2. MergeSort (3. )
26 , 30, 1.4: T(n)=aT(n/b)+f(n)
(A,1,16): 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1 2 3 4 5 6 7 9 10 11 13 14 18 19 20 22
1 2 3 4 5 6 7 8
1 4 6 7 9 11 18 209 10 11 12 13 14 15 16
2 3 5 10 13 14 19 22
1 2 3 4
4 7 11 185 6 7 8
1 6 9 209 10 11 12
5 14 19 2213 14 15 16
2 3 10 134 7 11 18 1 6 9 20
1 2
7 183 4
4 11
5 6
9 207 8
1 6
5 14 19 22 2 3 10 13
9 10
19 2211 12
5 14
13 14
2 315 16
10 13
. 1. 2. MergeSort (4. )
27 , 30, 1.4: T(n)=aT(n/b)+f(n)
Merge :)()( mnnT +=
MergeSort :
>+
+
=== 2),(
22
21),1()(
nnnTnT
nn
nT
nnn
=
)()( mnnT +=
:
. : (n)=(nlogn)
222nnn
=
>+
=== 2),(
22
21),1()(
nnnT
nn
nT
. 1. T(n)=aT(n/b)+f(n)
28 , 30, 1.4: 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.
29 , 30, 1.4: T(n)=aT(n/b)+f(n)
(Master Theorem) : : :
a1, b>1 , f(n) . :
) >0, :)()( log = abnOnf
)()( nfbn
aTnT +
=
( )abnnT log)( =) :
) >0 c
. 1. T(n)=aT(n/b)+f(n)1.
30 , 30, 1.4: T(n)=aT(n/b)+f(n)
:
a,b f(n) a,b f(n) logba. f(n) :
B
abnnf log)(
. 1. T(n)=aT(n/b)+f(n)1. ( )
31 , 30, 1.4: T(n)=aT(n/b)+f(n)
: :: :
::
: >0 :
nnTnT +
=
28)(
)()( 3 == nOnnf
)()( 3nnT =
38loglog,)(,2,8 2 ===== annfba b
)()( 3nnT =
. 1. T(n)=aT(n/b)+f(n)1. ( )
32 , 30, 1.4: T(n)=aT(n/b)+f(n)
: :: :
::
:
:
2
39)( nnTnT +
=
)()( 22 nnnf ==
)log()( 2 nnnT =
29loglog,)(,3,9 32 ===== annfba b
)log()( 2 nnnT =
. 1. T(n)=aT(n/b)+f(n)1. ( )
33 , 30, 1.4: T(n)=aT(n/b)+f(n)
2 , c>0 . )(nfcnfa c>0 . c a, b f(n) f(n/b).: :
::
: >0 c
. 1. T(n)=aT(n/b)+f(n)2.
34 , 30, 1.4: T(n)=aT(n/b)+f(n)
T(n)=aT(n/b)+f(n), T(n)=aT(n/b)+f(n), :
1. 3 ( )
2. k ( )
.......)( 3 +
=
bnTnT
.......)( +
= kb
nTnT
nn
=3. ( n0 k). .. n0=1 k=logbn
4. k 2.
5. .
0nbn
k =
. 1. T(n)=aT(n/b)+f(n)2. ( 1: 3 )
35 , 30, 1.4: T(n)=aT(n/b)+f(n)
1 3 . .
,
: :
:
=
>+
=
1,1
1,3
5)(n
nnnT
nT
+
= nnTnT 5)( 5)( nnTnT +=
=+++
=++
+
=
++
=+
+
=
+
=
nnnnTnnnnT
nnnTnnnT
nTnT
35
35
35
35
3355
35
35
3355
35)(
22
33
232
22
2
232
2
335
3
335
3
35)(
nnTnT
nnTnT
nTnT
+
=
+
=
+
=
. 1. T(n)=aT(n/b)+f(n)2. ( 2: k)
36 , 30, 1.4: T(n)=aT(n/b)+f(n)
2 k ( .......)( += nTnT(
()
nnnnnT
nnnnT
kk
kk +++++
=
==
=+++
=
35
35...
35
35
...
35
35
35
22
11
22
33
.......)( +
= kbTnT
3333
. 1. T(n)=aT(n/b)+f(n)2. ( 3: k)
37 , 30, 1.4: T(n)=aT(n/b)+f(n)
( n0 k).
0nbn
k =
k).
()
nk 13
=
=
nkkn
n
n
k
k
3
33
33
log3loglog
3loglog3
=
=
=
=
. 1. T(n)=aT(n/b)+f(n)2. ( 4: k)
38 , 30, 1.4: T(n)=aT(n/b)+f(n)
k 2. 2. .
()
k=log3n (n) :
nnn
nnnnnTnT
n
n
n
n +++++
=
35
35...
35
35)( 221log1logloglog 3333
( )n
nnn
nnnnT
n
nn
n
nn
+++++=
+++++=
35
35...
355
35
35...
3515
22
1log1loglog
22
1log1loglog
3
33
3
33
. 1. T(n)=aT(n/b)+f(n)2. ( 5: )
39 , 30, 1.4: T(n)=aT(n/b)+f(n)
.
:
()
nn
nnnn
nnnn
nT
ni
nn in
n
nn
n
nn
5555
35...
35
355
35
35...
355)(
33
3
33
3
33
1loglog1loglog
1log1log
22log
22
1log1loglog
=+=+=
=
+++++=
=+++++=
=
+
=
n
i
ni
x
xx
0
1
11
nnn
nn
nn
nnn
n
n
iinn
i
in
n
i inn
i iin
5,166,15,15166,1
166,15
66,15355
355
355
333
3
3333
3333
loglog11log
log
1log
0log1log
0log
1log
0log1log
0log
+=
+=
=+=
+=
=+=+=
+
=
=
=
=
nnnT nn 5,166,15,15)( 33 loglog +=
. 1
:
40 , 30, 1.4: T(n)=aT(n/b)+f(n)
:
4
3
2
28)()
28)()
28)()
nnTnTC
nnTnTB
nnTnTA
+
=
+
=
+
=
. 2
:
41 , 30, 1.4: T(n)=aT(n/b)+f(n)
3
2
25)()
25)()
nnTnTB
nnTnTA
+
=
+
=
. 3 :
42 , 30, 1.4: T(n)=aT(n/b)+f(n)
>+
=
=
>+
=
1,3
4)()
1,1
1,2
6)()
2 nnnT
nTB
n
nnnT
nTA
=
1,1
3n