You are on page 1of 171

30

1:

1.1:


, 30, 1.1: 2


.
.
1.
2.
3.
1.
2.
3.
4.
.
1.
2. (.)
3.
.
, 30, 1.1: 3




, ,




(-)
, 30, 1.1: 4

.
1.
,
:
( )
(
30 )
( )
:

: :

: :
[5, 8, 9, 11, 14] [5, 8, 9, 11, 14],11
[4,12,7,9] [3,6,9,14,17],12
: :
InsertionSort, BubbleSort, SelectionSort, LinearSearch, BinarySearch
MergeSort, QuickSort
: [5, 8, 9, : NAI -
11, 14] [4,7,9,12]
, 30, 1.1: 5

.
2.

,
:
: for, while, dowhile
: ifelse ifelse

( .. +,-,*,/,mod)

(
)
, 30, 1.1: 6

.
3.
1.
.

.

:

(, )
.
:
SelectionSort :
T (n) = n 2 + 3n
LinearSearch :
T ( n) = n
, 30, 1.1: 7

.
3.
1. ( LinearSearch)
( Linear
Search)
procedure LinearSearch(A,x)

for i=1 to n
if (A[i]==x)
return
end if
end for

return
end procedure

A n ,
x. .
, 30, 1.1: 8

.
3.
1. ( LinearSearch)

:
(
). ,
, :
n
T ( n) = 1 = n
i =1

(
).
, :
T ( n) = 1


. .
, 30, 1.1: 9

.
3.
1. ( SelectionSort)
( SelectionSort)
procedure SelectionSort(A)

for i=1 to n
pos=i
for j=i+1 to n
if (A[j]<A[pos])
pos=j
end if
end for
temp=A[i]; A[i]=A[pos]; A[pos]=temp
end for

end procedure
A () n
, 30, 1.1: 10

.
3.
1. (O SelectionSort)
( ) ,
- .
. ..
[4 3 5 1 2] :
1: 1 2 3 4 5 4: 1 2 3 4 5
4 3 5 1 2 1 2 3 4 5

1 2 3 4 5
1 2 3 4 5
2: 5: 1 2 3 4 5
1 3 5 4 2

1 2 3 4 5 1 2 3 4 5
3: 1 2 5 4 3 : 1 2 3 4 5
, 30, 1.1: 11

.
3.
1. (O SelectionSort)
.
( if)
(
). :
T (n) = i =1[1 + ( j =i +1 2) + 3] =
n n

= i =1[4 + 2( j =i +11)] =
n n

= i =1[4 + 2(n (i + 1) + 1)] =


n

= i =1[4 + 2(n i)] =


n

= i =1[4 + 2n 2i] =
n

= i =1 4 + i =1 (2n) i =1 (2i) =
n n n

n(n + 1)
= 4n + 2n2 2i =1 i = 4n + 2n2 2
n
=
2
= n2 + 3n
, 30, 1.1: 12

.
3.
1. (O SelectionSort)
.
,
if. :

T (n) = i =1[1 + ( j =i+11) + 3] =


n n

= i =1[4 + (n (i + 1) + 1)] =
n

= i =1[4 + n i] =
n

= i =1[4 + n i] =
n

= i =1 4 + i =1 (n) i=1 (i) =


n n n

n(n + 1)
= 4n + n2 i =1 i = 4n + n2
n
=
2
= 0.5n2 + 2.5n
, 30, 1.1: 13

.
3.
2.
:
LinearSearch
.
SelectionSort
.
:


.

(.)
, 30, 1.1: 14

.
3.
2.
:
:
LinearSearch :
: (n) = n
: (n) = (n)
LinearSearch :
: (n) = 1
: (n) = (1)
SelectionSort :
: ( n) = n 2 + 3n
:( n) = (n 2 )
SelectionSort :
: (n) = 0.5n + 2.5n
2

: ( n ) = ( n 2
)
, 30, 1.1: 15

.
3.
2.
;
:

< < < <

:
n. : ( n ) = (1)
:
( n ) = (log k n ) k >0
:
( n ) = ( n k ) k >0
:
( n ) = ( a n ) a >1
:
( n ) = ( n!) ( n ) = ( n n ) n!< n n
, 30, 1.1: 16

.
3.
3.

.


.
! n, n .

(.)
.
, 30, 1.1: 17

.
3.
3. ( Fibonacci)
:
Fibonacci :
1, n = 1

fn = 1, n = 2
f + f , n>2
n 1 n 2
n-
.
1 2 3 4 5 6 7 8 9 10
1 1 2 3 5 8 13 21 34 55 ...
, 30, 1.1: 18

.
3.
3. ( Fibonacci)
n- Fibonacci :
procedure Fibonacci(n)

A[1]=1
A[2]=1
for i=3 to n
A[i]=A[i-1]+A[i-2]
end for
return A[n]
end procedure

:
n A
n i
T(n)=n+2
T(n)=(n)
, 30, 1.1: 19

.
3.
3. ( Fibonacci)
;
procedure Fibonacci(n)

if (n=1) return 1
else if (n=2) return 1
else
a=1
b=1
for (i=3 to n)
c=a+b
a=b
b=c
end for
end if
return c
end procedure

:
i,n,a,b,c
T(n)=5 T(n)=(1)
, 30, 1.1: 20

.
3.
4.
.
:
( (.) )
.
.
:
./ ./
LinearSearch (1) ? (n)
BinarySearch (1) ? (log n)
BubbleSort (n2) (n2) (n2)
InsertionSort (n) ? (n2)
SelectionSort (n2) (n2) (n2)
MergeSort (n logn) (n logn) (n logn)
QuickSort (n logn) (n logn) (n2)
, 30, 1.1: 21

.
1.
1.

:
....



....

++
, 30, 1.1: 22

.
1.
2. for
for for
for.
..:
..:

for (i=A to B)
... K ...
end for

T ( n) = K
B
i = n(n + 1) / 2
i =1
i= A
n

:
i
i =1
2
= n(n + 1)( 2n + 1) / 6

B B B n n n n
x n +1 1
c = c1,
i= A i= A
c : . 1 = + 1 ( A + B) = A + B x = i

x 1
i= A i =1 i =1 i =1 i =0
, 30, 1.1: 23

.
1.
3.
,
.
..:
for (i= to )
for (j=C to D)
... K ...
end for
end for


B D
T (n) = K
i = A j =C
, 30, 1.1: 24

.
2. (.)
(.) ,

.
,
(.)

1. ( n) = n( n + 1) = n 2 + n = ( n 2 )

n(n + 1)(2n + 1) ( n 2 + n)( 2n + 1) 2 3 3 2 1


2. (n) = = = n + n + n = ( n 3 )
6 6 6 6 6


.
, 30, 1.1: 25

.
3.
(.)
.
:
1
a0 = 1 (a ) = (a ) = a
m n n m nm
x = x = x 0.5
2

a =a
1 a mn
=a ( mn ) B

m+ n
A
x =x
B A
1
a = 1/ a a a =a
m n

a k = 1/ a k a m / a n = a mn
a m / b m = ( a / b) m
, 30, 1.1: 26

.
1

:
f1 (n) = n(2n + n 2 + 1)
f 2 (n) = 2n (2n + 1)
f 3 (n) = 50 (n 2 + 4n ) + log n
n
f 4 (n) = (2 ) 2 + n n
2

f 5 (n) = log n + n6 + n !+ 1000n + 14


f 6 (n) = 1000 + n 0.01
n
f 7 ( n) = 4
2n
f 8 ( n) = 4 n 2 + 6 n 4 + 4n
, 30, 1.1: 27

.
2
:
for i=1 to n
for j=1 to n
a=a+1
end for
b=a+a*a
end for
, 30, 1.1: 28

.
3
:
for i=1 to n
a=a/2
for j=1 to n
a=a*10
end for
b=a+a*a/2
for j=i+1 to n
a=a+9
end for
end for
, 30, 1.1: 29

.
1

:
procedure minArray(A)

min=A[1]
for i=2 to n
if (A[i]<min)
min=A[i]
end if
end for

end procedure
, 30, 1.1: 30

.
1
1.
1.
2.
2.
1.
2.
, 30, 1.1: 31

.
2

(InsertionSort).
:
procedure InsertionSort(A)

for i=2 to n
for j=i-1 to 1
if (A[j]>A[j+1])
temp=A[j]
A[j]=A[j+1]
A[j+1]=temp
else
break
end if
end for
end for

end procedure
, 30, 1.1: 32

.
2
1. .. [5 4 3 1 2]
.
2. ;
3. ;
4.
.
5. ;
6. ;
7.
.
30
1:

1.2:


, 30, 1.2: 2


.
.
1.
1.
2.
3.
4. f(x)=log x
5.
.
1.
2.
.
.
, 30, 1.2: 3




.

(-)

(-)
, 30, 1.2: 4

.
1.
1.
a b,
b a.
x = log b a bx = a
log b a
b a.

:
log 2 8 = 3 23 = 8
log 3 81 = 4 34 = 81
log 5 125 = 3 53 = 125
2
1 12 1
log1/ 4 1 / 16 = 2 = =
4 4 2 16
, 30, 1.2: 5

.
1.
2.
30, ,
2,
: log x = log 2 x
:
X logX X logX
1 log1=0 2048 log2048=11
2 log2=1 4096 log4096=12
4 log4=2 8192 log8192=13
8 log8=3
16 log16=4 220 log220=20
32 log32=5 230 log230=30
64 log64=6 240 log240=40

1024 log1024=10
, 30, 1.2: 6

.
1.
3. ( )
:
log b a K = K log b a

.
:
(log b a ) X

:
log bX a

.
: :
log b a K = K log b a log a K = K log a
log bX a = (log b a ) X log X a = (log a ) X
, 30, 1.2: 7

.
1.
3. ( )
,
, :

log c a
log b a =
log c b


2.
:
log 2 32 5
log 8 32 = = = 1.66
log 2 8 3
log 2048 11
log 64 2048 = = = 1.83
log 64 6
log 3 27 3
log 9 27 = = = 1.5
log 3 9 2
, 30, 1.2: 8

.
1.
3. ( )
:

log b ( xy ) = log b x + log b y


x
log b = log b x log b y
y

:
log( xy ) = log x + log y
x
log = log x log y
y
.
:


: log b xy = (log b x) y log b xy log b ( xy )
, 30, 1.2: 9

.
1.
3. ( )
( )
blogb x = x
:
5log5 n = n 2
2

10log10 ( n + n)
= n+ n


,
2.
:
n =2
2 log n 2

4 =2
n log 4n
= 2 n log 4 = 22 n
, 30, 1.2: 10

.
1.
4. f(x)=log x
30 (
)
f(x)=log x:

:
f(x) (
).
.
, 30, 1.2: 11

.
1.
5.
:
f1 (n) = log log n
f 2 (n) = log log log n

:
f1 (n) = log(log n)
f 2 (n) = log(log(log n))
.. :
log(log 256) = log(8) = 3
log(log(log16)) = log(log 4) = log(2) = 1

:
log log log n < log log n < log n

, 30, 1.2: 12

.
1.
b 2

x = log b a b =a
x x = log a 2x = a


log b ( xy ) = log b x + log b y log( xy ) = log x + log y

x x
log b = log b x log b y log = log x log y
y y

log c a log c a
log b a = log a =
log c b log c 2
log b a K = K log b a log a K = K log a
log bX a = (log b a ) X log X a = (log a ) X
blogb x = x 2log x = x
, 30, 1.2: 13

.
2.
:


5-6 .

:
1. (.) .
1. (
) ,
2
2. 2,
x = 2log x
3. (
)
4.

, 30, 1.2: 14

.
2.
1. (.)
(.)
.
(.)

:
.
.

.
.
! (.) . :

,
!
, (.),
(.) .
, 30, 1.2: 15

.
2.
1. (.)
:

/
, (.)
, 30, 1.2: 16

.
2.
2. 2
(.)

(! (.) ) 2.
:
, 30, 1.2: 17

.
2.
3.

.



, 30, 1.2: 18

.
2.
4.
,
.

.
!!! (
/ , :

,
:

. .: 5n < 6n < n log n
,
. ..: 2n + 4 < 2n + log n
, !
.
, 30, 1.1: 19

.
2.
4.

< < < <
( n ) = (1) ( n ) = (log k n ) ( n ) = ( n k ) ( n ) = ( a n ) ( n) = ( n!)
( n ) = ( n n )
:

(1)

>1
log log n < log n < log K n
n

n < n 2 < n 3 < ... < n K n
1<a<2, ,:
a n < ... < 2 n < 3n < ... < b n n
n! < nn n
, 30, 1.2: 20

.
2.
4.
:
:
3log n < log 2 n < 2.32n
:
f1 < f 2 < f 3
, 30, 1.2: 21

.
2.
:
, 30, 1.2: 22

.
1
.
,

1.log 5 25
2.log 4 64
3.log8 64
4.log 7
5.log 45
6.log 3 62
7.log 4 33
8.log 9 80
9.log 6 244
, 30, 1.2: 23

.
2
:

1.log128 32

2.log 4 512

3.log 9 27

4.log 4 1/ 2
, 30, 1.2: 24

.
1

:
f1 (n) = 1.5n log n
f 2 (n) = 10 log log n n
f3 (n) = 0.005log n n
f 4 (n) = 1.15n n
, 30, 1.2: 25

.
2

:
f1 (n) = 8log n n + 4n log n n
f 2 (n) = 10(n5 + n 2 ) + n 6
f 3 ( n) = n 2 n 5 + n 7
f 4 (n) = log 4 n n
, 30, 1.2: 26

.
3

:
f1 (n) = 3 n

f 2 (n) = log(n n )
f 3 (n) = 2log n
f 4 ( n) = ( n 5 ) n
30
1:

1.3:


, 30, 1.3: 2


.
.
1.
1.
2.
3.
4.
5.
2.

3.
.
, 30, 1.3: 3


(
)






, 30, 1.3: 4

.
1.
,,,,

.
f(n) g(n). :


f=o(g) , f f<g
g
f=O(g) , f fg
g
f=(g) , f f=g
g
f=(g) , f fg
g
f=(g) , f f>g
g
, 30, 1.3: 5

.
1.
1.
, f=O(g), : fg.
:
f (n) = O ( g (n)) n0 > 0, c > 0 : 0 f ( n) c g (n) n n0

n0,
f(n) cg(n)
c.

H f(n)=O(g(n)) f g
, 30, 1.3: 6

.
1.
1.
:
1
: 2n=O(n3)

:
f(n)=2n, g(n)=n3

n0=1, c=2.
f (n) cg (n)
2n 2n 3
1 n2
n1
, 30, 1.3: 7

.
1.
2. o
, f=(g), : f<g.
:
f (n) = o( g (n)) c > 0 : n0 : 0 f ( n) < c g (n ) n n0
c f(n)
cg(n) n0
H f(n)=(g(n)) f
g
!!
n=O(n)
no(n)
n=o(n2)
n=o(n3)
...

c>0.
, 30, 1.3: 8

.
1.
2. o
:
2
: 2n=(n2)

:
c>0:
f (n) < cg (n)
2n < cn 2
2 < cn
2/c < n
n0 2 / c
, 30, 1.3: 9

.
1.
4.
, f=(g), : fg.
:
f (n) = ( g (n)) n0 > 0, c > 0 : f (n) c g ( n) 0 n n0

n0,
f(n) cg(n)
c.

H f(n)=(g(n)) f
g
, 30, 1.3: 10

.
1.
4.
:
3
: 4n=(logn)

:
f(n)=4n, g(n)=logn

n0=1, c=4.
f (n) cg (n)
4n 4 log n
n log n

n1
, 30, 1.3: 11

.
1.
5.
, f=(g), : f>g.
:
f ( n) = ( g (n)) c > 0 : n0 : f (n) > c g ( n) 0 n n0
c f(n)
cg(n) n0
H f(n)=(g(n)) f
g
!!
n=(n)
n(n)
n=(logn)
n=(loglogn)
...

c>0.
, 30, 1.3: 12

.
1.
5.
:
4
: 0.5n2=(n)

:
c>0:
f (n) > cg (n)
0.5n 2 > cn
c
n>
0.5
n > 2c
n0 2c
, 30, 1.3: 13

.
1.
5.
, f=(g), f=g.
:
f (n) = ( g (n)) n0 > 0, c1 , c2 > 0 : 0 < c1 g ( n) f ( n) c2 g ( n)
n n0
n0,
f(n) g(n),
:

H f(n)=(g(n)) f
g
, 30, 1.3: 14

.
1.
5.
:
5
: 4n=(n)

:
f(n)=4n, g(n)=n

n0=1, c1=2.
f (n) c1 g (n)
4 n 2n
42
n1

n0=1, c2=6.
f (n) cg (n)
4n 6n
46
n1
, 30, 1.3: 15

.
2.
2
:
,
:
c 0, f ( n) = ( g ( n))
f ( n)
lim = 0, f ( n) = o( g ( n))
n+ g (n)
+ , f ( n) = ( g ( n))

( )
:



, 30, 1.3: 16

.
2.
:
6
: 0.5n2=(n)

:
f ( n) 0.5n 2
lim = lim = lim (0.5n) = +
n + g ( n) n + n n+

0.5n2=(n)

6
: 2n=o(3n)

:
n
f ( n) 2n 2
lim = lim n = lim = lim (0.66) n = 0
n + g ( n) n+ 3
n+
n+ 3

2n=o(3n)
, 30, 1.3: 17

.
3.

:
1: f ( n) = ( g (n )) f (n) = O ( g (n)) f (n) = ( g (n))

: f=g fg fg

2: f (n) = ( g ( n)) f (n) = O ( g (n))
: f<g fg

( )
3: f ( n) = ( g (n)) f (n) = ( g (n))
: f>g fg

( )
, 30, 1.3: 18

.
4.
O(n2):
:
1=O(n2)
n+2=O(n2)
logn=O(n2)
logn+5loglogn=O(n2)
3n2=O(n2)
O(n2)
n2.
O(n2)
:
1 O(n 2 )
n + 2 O(n 2 )
.
, 30, 1.3: 19

.
1
f g
f
g.
f(n) g(n) o O
n2 n3
n1.5 n
4logn 8logn
5n2 0.5n2
n3-5n 8logn

.. 1 , n2=o(n3)
, 30, 1.3: 20

.
2
f g
3
f g
g(n)=5 g(n)=logn g(n)=n2 g(n)=2n g(n)=5n g(n)=nn

f(n)=loglogn

f(n)=4logn

f(n)=n

f(n)=2n2

f(n)=6n5+n

f(n)=3n

f(n)=n!

.. 1 loglogn=(1)
, 30, 1.3: 21

.
1
,
:
1. n = O(n log n)
2. 4n 2 + n = (n 2 )
3. log 2 n = (log n)
4. 6n + 4 = (n)
5. 2 n = o(3n )
6. n n = ( n 2 )
, 30, 1.3: 22

.
2
, :

1. n = O(n log n)
2. 4n 2 + n = (n 2 )
3. log 2 n = (log n)
4. 6n + 4 = (n)
5. 2 n = o(3n )
6. n n = ( n 2 )
30
1:

1.4:

T(n)=aT(n/b)+f(n)


, 30, 1.4: T(n)=aT(n/b)+f(n)
2


.
.
1.
1. BinarySearch
2. MergeSort
2.
.
1. T(n)=aT(n/b)+f(n)
1.
2.
.
, 30, 1.4: T(n)=aT(n/b)+f(n)
3



T(n)=aT(n/b)+f(n)


T(n)=aT(n/b)+f(n)

MergeSort
BinarySearch
, 30, 1.4: T(n)=aT(n/b)+f(n)
4

.
1.

.

.
.

:
procedure recursive(n)
...
...
recursive(n-1)
...
...
end procedure
:
BinarySearch
MergeSort
, 30, 1.4: T(n)=aT(n/b)+f(n)
5

.
1.
1. BinarySearch (1. )
BinarySearch :
: A, x
:
,
x .
, 0.

:
:
x, .
x

x

, 30, 1.4: T(n)=aT(n/b)+f(n)
6

.
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>A[middle]) then
pos=BinarySearch(A,x,middle+1,finish)
return pos
end if
end if

end procedure
, 30, 1.4: T(n)=aT(n/b)+f(n)
7

.
1.
1. BinarySearch (3. )
11 :
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

: BinarySearch(A,11,1,15): middle=(1+15) div 2=8. x<A[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
start finish

: BinarySearch(A,11,1,7) : middle=(1+7) div 2=4 x>A[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
start finish

: BinarySearch(A,11,5,7) : middle=(5+7) div 2=6 x<A[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
start finish

: BinarySearch(A,11,5,5) : middle=(5+5) div 2=5 x=A[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
start=finish
, 30, 1.4: T(n)=aT(n/b)+f(n)
8

.
1.
1. BinarySearch (4. )
: x
.
T(n)=5 T(n)=(1).
: x :
T(n) n.
8
( 2
)
2 1
n

n
n, T(n), 2 1
T n2 1

1 .
n
: T ( n ) = T 1 + 9
2
n=0 1 ( )
, 30, 1.4: T(n)=aT(n/b)+f(n)
9

.
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) =
+ 9, n > 0
2
T


: T (n) = (log n)
, 30, 1.4: T(n)=aT(n/b)+f(n)
10

.
1.
2. MergeSort (1. )
MergeSort :
: () A n
:

: :





.
, 30, 1.4: T(n)=aT(n/b)+f(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
, 30, 1.4: T(n)=aT(n/b)+f(n)
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
, 30, 1.4: T(n)=aT(n/b)+f(n)
13

.
1.
2. MergeSort (3. )
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 9 10 13
, 30, 1.4: T(n)=aT(n/b)+f(n)
14

.
1.
2. MergeSort (3. )
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 9 10 11 12 13 14 15 16

18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
, 30, 1.4: T(n)=aT(n/b)+f(n)
15

.
1.
2. MergeSort (3. )
(A,1,8)
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 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 1
, 30, 1.4: T(n)=aT(n/b)+f(n)
16

.
1.
2. MergeSort (3. )
(A,1,4)
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 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 1

1 2 3 4

18 7 4 11
, 30, 1.4: T(n)=aT(n/b)+f(n)
17

.
1.
2. MergeSort (3. )
(A,1,2):
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 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 1

1 2 3 4

7 18 4 11
, 30, 1.4: T(n)=aT(n/b)+f(n)
18

.
1.
2. MergeSort (3. )
(A,3,4):
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 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 1

1 2 3 4

7 18 4 11
, 30, 1.4: T(n)=aT(n/b)+f(n)
19

.
1.
2. MergeSort (3. )
(A,1,4):
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 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

4 7 11 18 9 20 6 1

1 2 3 4

7 18 4 11
, 30, 1.4: T(n)=aT(n/b)+f(n)
20

.
1.
2. MergeSort (3. )
(A,5,8)
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 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

4 7 11 18 9 20 6 1

1 2 5 6 7 8
3 4

7 18 4 11 9 20 6 1
, 30, 1.4: T(n)=aT(n/b)+f(n)
21

.
1.
2. MergeSort (3. )
(A,5,6):
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 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

4 7 11 18 9 20 6 1

1 2 5 6 7 8
3 4

7 18 4 11 9 20 6 1
, 30, 1.4: T(n)=aT(n/b)+f(n)
22

.
1.
2. MergeSort (3. )
(A,7,8):
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 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

4 7 11 18 9 20 6 1

1 2 5 6 7 8
3 4

7 18 4 11 9 20 1 6
, 30, 1.4: T(n)=aT(n/b)+f(n)
23

.
1.
2. MergeSort (3. )
(A,5,8):
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 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

4 7 11 18 1 6 9 20

1 2 5 6 7 8
3 4

7 18 4 11 9 20 1 6
, 30, 1.4: T(n)=aT(n/b)+f(n)
24

.
1.
2. MergeSort (3. )
(A,1,8):
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 9 10 11 12 13 14 15 16

1 4 6 7 9 11 18 20 22 19 14 5 2 3 10 13

1 2 3 4 5 6 7 8

4 7 11 18 1 6 9 20

1 2 5 6 7 8
3 4

7 18 4 11 9 20 1 6
, 30, 1.4: T(n)=aT(n/b)+f(n)
25

.
1.
2. MergeSort (3. )
(9,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 9 10 11 12 13 14 15 16

1 4 6 7 9 11 18 20 2 3 5 10 13 14 19 22

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

4 7 11 18 1 6 9 20 5 14 19 22 2 3 10 13

1 2 5 6 7 8 9 10 13 14 15 16
3 4 11 12

7 18 4 11 9 20 1 6 19 22 5 14 2 3 10 13
, 30, 1.4: T(n)=aT(n/b)+f(n)
26

.
1.
2. MergeSort (3. )
(A,1,16):
1 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 9 10 11 12 13 14 15 16

1 4 6 7 9 11 18 20 2 3 5 10 13 14 19 22

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

4 7 11 18 1 6 9 20 5 14 19 22 2 3 10 13

1 2 5 6 7 8 9 10 13 14 15 16
3 4 11 12

7 18 4 11 9 20 1 6 19 22 5 14 2 3 10 13
, 30, 1.4: T(n)=aT(n/b)+f(n)
27

.
1.
2. MergeSort (4. )
Merge :
T ( n ) = ( n + m )

MergeSort :

(1), n =1 n = 2

T ( n) = n n
T + T + (n), n>2
2 2

n n n
=
2 2 2
:
(1), n =1 n = 2

T ( n) = n
+ (n), n>2
2
2T

. : (n)=(nlogn)
, 30, 1.4: T(n)=aT(n/b)+f(n)
28

.
1. T(n)=aT(n/b)+f(n)
T(n)=aT(n/b)+f(n)
:
,

,
(
).
:
,
.




( 2
3 ..)
.
, 30, 1.4: T(n)=aT(n/b)+f(n)
29

.
1. T(n)=aT(n/b)+f(n)
1.
(Master Theorem) :
:
n
T (n) = aT + f (n)
b
a1, b>1 , f(n) .
:
log a
) f (n) = O (n b ) >0, :
(
T (n) = n logb a )
) f (n) = (n logb a ) :
(
T (n) = n logb a log n )
log a +
) f (n) = (n b ) >0
n
a f c f (n) c<1, :
b
T ( n ) = ( f ( n ) )
, 30, 1.4: T(n)=aT(n/b)+f(n)
30

.
1. T(n)=aT(n/b)+f(n)
1.
:
a,b f(n)
logba.
f(n) n log a : b

f (n) < n log a


b

f (n) = n
log a
b
B

f (n) > n
log b a
(!
2 )
, 30, 1.4: T(n)=aT(n/b)+f(n)
31

.
1. T(n)=aT(n/b)+f(n)
1. ( )

:
:
n
: T (n) = 8T + n
2

:
: a = 8, b = 2, f (n) = n, log b a = log 2 8 = 3
3
: f (n) = n = O( n ) >0
:
T ( n ) = ( n 3 )
, 30, 1.4: T(n)=aT(n/b)+f(n)
32

.
1. T(n)=aT(n/b)+f(n)
1. ( )

:
:
n
: T (n) = 9T + n 2
3

:
: a = 9, b = 3, f (n) = n 2 , log b a = log 3 9 = 2
: f (n) = n = (n )
2 2

:
T (n) = (n 2 log n)
, 30, 1.4: T(n)=aT(n/b)+f(n)
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
2
:
: a = 4, b = 2, f ( n) = n 3 , log b a = log 2 4 = 2
2 +
: f (n) = n = (n ) >0
3

c<1 :
3
n n n n3 4 1
af cf (n) 4 f cf (n) 4 cn 4 3 cn3 c c
3

b 2 2 2 8 2
c<1.
:
T ( n ) = ( n 3 )
, 30, 1.4: T(n)=aT(n/b)+f(n)
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
n
3. ( b k = n0 n0
k). .. n0=1
k=logbn
4. k 2.
5. .
, 30, 1.4: T(n)=aT(n/b)+f(n)
35

.
1. T(n)=aT(n/b)+f(n)
2. ( 1: 3 )
1 3
.
,

: n
5T
: T ( n) = 3
+ n, n > 1
1, n = 1
:

n n
T (n) = 5T + n T (n) = 5T + n
3 3
n n n n n n n
= 55T 2 + + n = 52 T 2 + 5 + n T = 5T 2 +
3 3 3 3 3 3 3
n n n n n n n n n
= 5 5T 3 + 2 + 5 + n = 53 T 3 + 52 2 + 5 + n =
2 T 2 = 5T 3 + 2
3 3 3 3 3 3 3 3 3
, 30, 1.4: T(n)=aT(n/b)+f(n)
36

.
1. T(n)=aT(n/b)+f(n)
2. ( 2: k)
2 k
( T (n) = ... T b k + ....
n

(pp)

n n n
= 53 T 3 + 5 2 2 + 5 + n =
3 3 3
= ... =
n n n n
= 5k T k + 5k 1 k 1 + ... + 52 2 + 5 + n
3 3 3 3
, 30, 1.4: T(n)=aT(n/b)+f(n)
37

.
1. T(n)=aT(n/b)+f(n)
2. ( 3: k)
n
( = n0 n0
bk
k).

(pp)


n
=1
3k
n = 3k
log 3 n = log 3 3k
log 3 n = k log 3 3
k = log 3 n
, 30, 1.4: T(n)=aT(n/b)+f(n)
38

.
1. T(n)=aT(n/b)+f(n)
2. ( 4: k)
k
2.
.

(pp)

k=log3n (n) :
n n n n
T (n) = 5log3 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) + 5log3 n 1 log3 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
, 30, 1.4: T(n)=aT(n/b)+f(n)
39

.
1. T(n)=aT(n/b)+f(n)
2. ( 5: )
.

: x = x 1 n
i
n +1

i =0 x 1

(pp)
n n n
T (n) = 5log3 n + 5log3 n 1 log 3 n 1
+ ... + 52
2
+ 5 +n =
3 3 3
n n n
= 5log3 n + n + 5 + 52 2 + ... + 5log3 n 1 log3 n 1 =
3 3 3
i
log 3 n 1 i n log 3 n 1 5
=5 log 3 n
+ i =0 5 i = 5 log 3 n
+ ni =0 i
=
3 3
i
5
log 3 n 1 log n 1
=5 log 3 n
+ ni =0 = 5log3 n + ni =03 1,66i =
3
1,66log3 n 1+1 1 log3 n
=5 log 3 n
+n =5 + 1,5 n 1,66log3 n 1,5n
1,66 1

T (n) = 5log3 n + 1,5 n 1,66log3 n 1,5n


, 30, 1.4: T(n)=aT(n/b)+f(n)
40

.
1

:
n
A) T (n) = 8T + n 2
2
n
B) T (n) = 8T + n 3
2
n
C) T (n) = 8T + n 4
2
, 30, 1.4: T(n)=aT(n/b)+f(n)
41

.
2
:
n
A) T (n) = 5T + n 2
2
n
B) T (n) = 5T + n 3
2
, 30, 1.4: T(n)=aT(n/b)+f(n)
42

.
3
:

n
6T + n, n > 1
A) T (n) = 2
1, n = 1

n 2
4T +n , n > 1
B) T (n) = 3
1, n = 1
, 30, 1.4: T(n)=aT(n/b)+f(n)
43

1.
3.
:
.
( )
.

( .. )
1. ( ) . [ ]

2. : c1,n1
.

3. : c2,n2
.

4. c1,c2 n0=max{n1,n2}
:
:
.
, , .
, 30, 1.4: T(n)=aT(n/b)+f(n)
44

1.
2.
1:
2 , 1
: n n nlogn
1. 0 1
:

: $ , 0 :
n 2
% 2c '()
c log * log 2
c '() * $
% c '() 1*$
1 * $ % 0, : n % $ '() , $ 1, :
%c '()

:
n 1: 1 1 % $ 1 log 1 0. ./01 $
n 2: 2 4 % $ 2 log 2 $ 2. $ 2
n 3: 3 10 % $ 3 log 3 $ 4,75. $ 2,1.
% 1, c 1.
, 30, 1.4: T(n)=aT(n/b)+f(n)
45

1.
2.
1:
2 , 1
: n n nlogn
1. 0 1
(;;):

: $6 , 6 0 :
n 2
2c6 '()
c6 log * log 2
c6 '() * $6
c6 '() 1 * $6
1 * $6 0, : n $6 '() , $6 % 1, :
c6 '()

:
n 1: 1 1 $6 1 log 1 0. .
n 2: 2 4 $6 2 log 2 $6 2. $6 % 2
3: 3 10 $6 3 log 3 $6 4,75. $6 % 2,1.
6 % 2, $6 % 2,1

T n nlogn 8 % 2, c6 % 2,1, c 1.
, 30, 1.4: T(n)=aT(n/b)+f(n)
46

1.
3.
.
:
2:
: n 2 , 1 n O nlogn
1. 1
:
n 2
2$ '()
2$ '()
$ '()
$ '() * $ '()2
$ '() 1*$
c % 1

:
n 1: 1 1 $ 1 log 1 0. .
n 2: 2 4 $ 2 log 2 $ 2. $ % 2
n 3: 3 5 $ 3 log 3 $ 4,75. $ % 1,05.
8 % 2, $ % 2.
, 30, 1.4: T(n)=aT(n/b)+f(n)
47

1.
3.
3:
. : n 1 1 1, n n
:
$, 8 0 :
n 1
$ $ 1
$ 1
, n cn
:
$ * F :
n 1 n 1: 1 1 $ 1. c % 1.
n 2: 2 3 $ 2. $ % 1,5
$ *F $ *F 1 3: 3 5 $ 3. $ % 1,67.
$ * 2F 1 % 1, $ % 1,67
6
*2F 1 G 0 F .
T n nlogn % 2, c6 % 2,1, c 1.
.. b=1/2 $ % 0. 8
, 30, 1.4: T(n)=aT(n/b)+f(n)
48

4
n , 3
n/3 12n.
.
, ,
n0 (c1, c2)
. , (x)=1, 0x1
30
1:

1.5:
T(n)=aT(n-b)+f(n)
T(n)=T(n/a)+T(n/b)+f(n)


, 30, 1.5: T(n)=T(n/a)+T(n/b)+f(n) T(n)=aT(n-b)+f(n) 2


.
B.
1. T(n)=aT(n-b)+c
1.
2. T(n)=T(n-1)+f(n)
1.
3. T(n)=T(n/a)+T(n/b)+f(n)
1.
2.
3. .3.6
.
, 30, 1.5: T(n)=T(n/a)+T(n/b)+f(n) T(n)=aT(n-b)+f(n) 3


3.6 T(n)=T(n/a)+T(n/b)+f(n)
T(n)=T(n-1)+f(n)

T(n)=T(n/a)+T(n/b)+f(n)
T(n)=aT(n-b)+c


T(n)=T(n/a)+T(n/b)+f(n)
, 30, 1.5: T(n)=T(n/a)+T(n/b)+f(n) T(n)=aT(n-b)+f(n) 4

B.
T(n)=aT(n-b)+f(n)
H T(n)=aT(n-b)+f(n)
.
:
f(n)=c, T(n)=aT(n-b)+c

.
a=1, T(n)=T(n-b)+f(n)

.
a, b, f(n) .
, 30, 1.5: T(n)=T(n/a)+T(n/b)+f(n) T(n)=aT(n-b)+f(n) 5

.
1. T(n)=aT(n-b)+c
T(n)=aT(n-b)+c

1. 3 (
T ( n ) = ... T (n 3b ) + .... )
2. k (
T ( n) = ... T (n kb ) + .... )

3. ( n kb = n0 n0
k). .. n0=0
n/b
4. k 2.
5. .
, 30, 1.5: T(n)=T(n/a)+T(n/b)+f(n) T(n)=aT(n-b)+f(n) 6

B.
1. T(n)=aT(n-b)+c
1. ( 1: 3 )
1 3
.

5T (n 2 ) + 2,
: n > 0
: T (n) =
1, n = 0
:

T (n) = 5T (n 2 ) + 2
= 5[5T (n 4) + 2] + 2 = 52 T (n 4 ) + 5 2 + 2
= 52 [5T (n 6) + 2] + 5 2 + 2 = 53 T (n 6 ) + 52 2 + 5 2 + 2
, 30, 1.5: T(n)=T(n/a)+T(n/b)+f(n) T(n)=aT(n-b)+f(n) 7

B.
1. T(n)=aT(n-b)+c
1. ( 2: k)
2 k
( T (n) = ... T (n kb) + ....
()

T (n) = 53 T (n 6 ) + 52 2 + 5 2 + 2 =
= ... =
= 5k T (n 2k ) + 5k 1 2 + ... + 52 2 + 5 2 + 2
, 30, 1.5: T(n)=T(n/a)+T(n/b)+f(n) T(n)=aT(n-b)+f(n) 8

B.
1. T(n)=aT(n-b)+c
1. ( 3: k)
( n kb = n0 n0
k).

()


n 2k = 0
n = 2k
k = n/2
, 30, 1.5: T(n)=T(n/a)+T(n/b)+f(n) T(n)=aT(n-b)+f(n) 9

B.
1. T(n)=aT(n-b)+c
1. ( 4: k)
k
2.
.

()

k=n/2 (n) :

T (n) = 5n / 2 T (0 ) + 5n / 21 2 + ... + 52 2 + 5 2 + 2
= 5n / 2 + 5n / 21 2 + ... + 52 2 + 5 2 + 2
, 30, 1.5: T(n)=T(n/a)+T(n/b)+f(n) T(n)=aT(n-b)+f(n) 10

B.
1. T(n)=aT(n-b)+c
1. ( 5: )

: n x i = x n+1 1

i =0 x 1

()

k=n/2 (n) :
T (n) = 5n / 2 + 5n / 21 2 + ... + 52 2 + 5 2 + 2 =
= 5n / 2 + [ 2 + 5 2 + 52 2 + ... + 5n / 21 2] =
= 5n / 2 + 2[1 + 5 + 52 + ... + 5n / 21 ] =
n / 2 1
= 5n / 2 + 2i =0 5i =
5n / 21+1 1
=5 +2n/2
=
5 1
= 5n / 2 + 0,5(5n / 2 1) =
= 1,5 5n / 2 0,5
, 30, 1.5: T(n)=T(n/a)+T(n/b)+f(n) T(n)=aT(n-b)+f(n) 11

.
2. T(n)=T(n-b)+f(n)
T(n)=T(n-1)+f(n)

1. T(n), T(n-1),

2.

3.
, 30, 1.5: T(n)=T(n/a)+T(n/b)+f(n) T(n)=aT(n-b)+f(n) 12

B.
2. T(n)=aT(n-b)+c
1. ( 1: )
1 T(n)
T(n0) n0

: T ( n 1) + 3n, n > 0
: T ( n) =
1, n = 0
:
T ( n) = T (n 1) + 3n
T (n 1) = T ( n 2) + 3(n 1)
T (n 2) = T (n 3) + 3(n 2)
...
T (2) = T (1) + 3 2
T (1) = T (0) + 3 1
T (0) =1
, 30, 1.5: T(n)=T(n/a)+T(n/b)+f(n) T(n)=aT(n-b)+f(n) 13

B.
2. T(n)=aT(n-b)+c
1. ( 2: )
2
:

T ( n) = T (n 1) + 3n
T (n 1) = T ( n 2) + 3(n 1)
T (n 2) = T (n 3) + 3(n 2)
...
T (2) = T (1) + 3 2
T (1) = T (0) + 3 1
T (0) =1 (+)

T (n) = 3n + 3( n 1) + 3( n 2) + ... + 3 2 + 3 1 + 1
, 30, 1.5: T(n)=T(n/a)+T(n/b)+f(n) T(n)=aT(n-b)+f(n) 14

B.
2. T(n)=aT(n-b)+c
1. ( 3: )
3
. :
n
n(n + 1) n
n(n + 1)(2n + 1) n


i =1
i =
2 i = 2

6
i k
= ( n k +1
)
i =1 i =1
( )

()

T ( n) = 3n + 3(n 1) + 3(n 2) + ... + 3 2 + 3 1 + 1


= 1 + 3 1 + 3 2 + ... + 3( n 2) + 3(n 1) + 3n
= 1 + 3[1 + 2 + ... + (n 2) + (n 1) + n]
n(n + 1)
= 1 + 3i =1 i = 1 + 3
n
=
2
= 1,5n 2 + 1,5n + 1
, 30, 1.5: T(n)=T(n/a)+T(n/b)+f(n) T(n)=aT(n-b)+f(n) 15

B.
T(n)=T(n/a)+T(n/b)+f(n)
H T(n)=T(n/a)+T(n/b)+f(n) :

1 1
3.6 ( + 1)
a b
1 1
( + >1 )
a b


, !
, 30, 1.5: T(n)=T(n/a)+T(n/b)+f(n) T(n)=aT(n-b)+f(n) 16

.
3. T(n)=T(n/a)+T(n/b)+f(n)
T(n)=T(n/a)+(n/b)+f(n)


1. 2
2. ( f(n))
3. ( )
4. ( logcn c
a,b)
5. T(n)=
, 30, 1.5: T(n)=T(n/a)+T(n/b)+f(n) T(n)=aT(n-b)+f(n) 17

B.
3. T(n)=T(n/a)+T(n/b)+f(n)
1. ( 1: 2 )
1
(
).
: n n
T + T + n, n > 1
: T (n) = 2 3
1, n = 1
:
T (n )
n n
T ( n) = T + T + n
2 3
n n n n n n
T T T = T +T +
2 3 2 4 6 2
n n n n
T = T +T +
n n n n 3 6 9 3
T T T T
4 6 6 9
NO NO NO NO
, 30, 1.5: T(n)=T(n/a)+T(n/b)+f(n) T(n)=aT(n-b)+f(n) 18

B.
3. T(n)=T(n/a)+T(n/b)+f(n)
1. ( 2: )
2
(
f(n) )
()

T (n ) n
n n
T ( n) = T + T + n
2 3
n n n
T T n
n n n n
2 2
3 3 T = T +T +
2 4 6 2
n n n n
n n n n n n
T = T +T +
T T n
T n T 3 6 9 3
4 4
6 6
6 6 9 9

NO NO NO NO
, 30, 1.5: T(n)=T(n/a)+T(n/b)+f(n) T(n)=aT(n-b)+f(n) 19

B.
3. T(n)=T(n/a)+T(n/b)+f(n)
1. ( 3: )
3 .
.
i.
()

T (n ) n 0: n

n n n n n 3n 2n 5n
T T n
1: + = + =
2 2
3 3 2 3 6 6 6

n n n n n n n n 52 n
2: + + + = ... = 2
n n n
T T n
T T
4 4
6 6
6 6
9 9 4 6 6 9 6

5i n
i
6i
, 30, 1.5: T(n)=T(n/a)+T(n/b)+f(n) T(n)=aT(n-b)+f(n) 20

B.
3. T(n)=T(n/a)+T(n/b)+f(n)
1. ( 4: )
4 .
n/a kai n/b
n0, n/min{a,b}=n0

c
(. c=min{a,b} ) logcn.
()

log2n
, 30, 1.5: T(n)=T(n/a)+T(n/b)+f(n) T(n)=aT(n-b)+f(n) 21

B.
2. T(n)=T(n/a)+T(n/b)+f(n)
1. ( 5: )
5
. .
: n i x n +1 1
x
i =0
=
x 1

()

:
i
n log n 5
T ( n) = i = 0 5 i = n i =0 i =
log n i

6 6
log n +1
5
i 1
log n 5
= n i =0 = n
6
=
6 5
1
6
= 6n ( 0,83)
log n +1
6n
, 30, 1.5: T(n)=T(n/a)+T(n/b)+f(n) T(n)=aT(n-b)+f(n) 22

.
3. T(n)=T(n/a)+T(n/b)+f(n)
2.
T(n)=T(n/a)+(n/b)+f(n)


1. a b
.
2. a b
.
3.
.
, 30, 1.5: T(n)=T(n/a)+T(n/b)+f(n) T(n)=aT(n-b)+f(n) 23

.
3. T(n)=T(n/a)+T(n/b)+f(n)
2.

.
a,b a,b
:
n n
: T ( n) = T + T + n 2
3 4

:
:
n
( n) = 2 + n 2
3

:
n
( n ) = 2 + n 2
4
, 30, 1.5: T(n)=T(n/a)+T(n/b)+f(n) T(n)=aT(n-b)+f(n) 24

.
3. T(n)=T(n/a)+T(n/b)+f(n)
2. (1. )
.

n
A(n) = 2 A + n 2
3

: a = 2, b = 3, f ( n) = n 2 , log b a = log 3 2 = 0,63


0 , 63+
: f (n) = n = (n
2
) >0
c<1 :
2
n n n n2 2
af cf ( n) 4 f cf ( n) 2 cn 2 2 cn 2 c
2

b 2 3 3 9
2/9 c < 1.
:
A(n) = (n 2 )

T ( n) = ( n 2 )
, 30, 1.5: T(n)=T(n/a)+T(n/b)+f(n) T(n)=aT(n-b)+f(n) 25

.
3. T(n)=T(n/a)+T(n/b)+f(n)
2. (2. )
.

n
K ( n) = 2 K + n 2
4

: a = 2, b = 4, f ( n) = n 2 , log b a = log 4 2 = 0,5


: f (n) = n 2 = (n 0,5+ ) >0
c<1 :
2
n n n n2 2 1
af cf ( n) 4 f cf ( n) 2 cn 2 2 cn 3
3
c c
b 2 4 4 16 8
1/8 c < 1.
:
K ( n ) = ( n 2 )

T ( n) = ( n 2 )
, 30, 1.5: T(n)=T(n/a)+T(n/b)+f(n) T(n)=aT(n-b)+f(n) 26

.
3. T(n)=T(n/a)+T(n/b)+f(n)
2. (3. /)
,
.

(...)
:

: T (n) = (n )
2

T (n) = (n 2 )

T (n) = (n 2 )

, !
, 30, 1.5: T(n)=T(n/a)+T(n/b)+f(n) T(n)=aT(n-b)+f(n) 27

.
3. T(n)=T(n/a)+T(n/b)+f(n)
3. 3.6
T(n)=T(n/a)+(n/b)+f(n)
3.6
3.6

1 1
+
a b
1 1
1. + < 1 T (n) = ( f (n))
a b

1 1
2. + = 1 T (n) = ( f (n) log n)
a b

1 1
3. + > 1 3.6
a b

, 30, 1.5: T(n)=T(n/a)+T(n/b)+f(n) T(n)=aT(n-b)+f(n) 28

B.
3. T(n)=T(n/a)+T(n/b)+f(n)
3. 3.6 ()
3.6
.

:
n n 2
: T ( n) = T + T + n
3 4
: 1 1 4 3 7
: + = + = < 1 .3.6 : T (n) = (n 2 )
3 4 12 12 12

:
n 2n
: T ( n) = T + T + n
3 3
: 1 2 3
: + = = 1 .3.6 : T ( n) = ( n log n )
3 3 3
, 30, 1.5: T(n)=T(n/a)+T(n/b)+f(n) T(n)=aT(n-b)+f(n) 29

.
1
:

4T ( n 3) + 5, n > 0
A) T (n) =
0, n = 0

T (n 1) + 2n 2 , n > 0
B ) T (n) =
1, n = 0
, 30, 1.5: T(n)=T(n/a)+T(n/b)+f(n) T(n)=aT(n-b)+f(n) 30

.
2

:
n n 2
T +T + n , n > 1
A) T (n) = 3 4
1, n = 1

n 2n
T + T + n, n > 1
B ) T (n) = 3 3
1, n = 1
, 30, 1.5: T(n)=T(n/a)+T(n/b)+f(n) T(n)=aT(n-b)+f(n) 31

.
3


n 2n
T ( n) = T + T + n 2
2 3
, 30, 1.5: T(n)=T(n/a)+T(n/b)+f(n) T(n)=aT(n-b)+f(n) 32

.
4

3n n
A) T (n) = T + T + log n
4 4

2n n 3
B ) T ( n) = T + T + n
5 6

2n n 2
C ) T ( n) = T + T + n
3 2
, 30, 1.5: T(n)=T(n/a)+T(n/b)+f(n) T(n)=aT(n-b)+f(n) 33

.
5
.

(A1) n,
n/3
n3.

(A2) n,
n/2
n.

(A3) n-1
n3.


, .

n
: i
i =1
3
= ( n 4 )
30
1:

1.6:


, 30, 1.6: 2


.
B.
1.
1.
2.
2.
.
, 30, 1.6: 3


(-)

(-)



, 30, 1.6: 4

B.
1.

:

.

.
,
.
,
.


.
f=O(g) f=(g) f=(g).

.
, 30, 1.6: 5

B.
1.
1.

.
,
.
:

n
: T (n) = i =1
i log i

1 : : i log i i
2

i =1 i =1 =
n n
: T (n) = =
2 3 3
i log i i ( n ) : T ( n ) O ( n )

2 : : i log i i log n

i =1 i log i i =1 i log n = log ni =1 i = log n (n 2 ) = (n 2 log n)


n n n
: T (n) =

: T ( n) = O (n log n)
2
, 30, 1.6: 6

B.
1.
2.

.
,
.
:

n
: T (n) = i =1
i log i

: : i log i i

T (n) = i =1 i log i i =1 i = (n 2 ) : T (n) = (n )


n n 2
:


T (n) = (n 2 ) T (n) = O(n 2 log n)
, 30, 1.6: 7

B.
2.


.

.

.
:
T (n) = i = n / 2 i 2
n
:

i =n / 2 i 2 i=1 i 2 = (n3 ) : T (n) = (n3 )


n n
: T (n) =
2 2
n n
: T (n) = i = n / 2 i i = n / 2 = i = n / 2 1 =
n 2 n n

2 2
n2 n n2 n n3 n 2
= (n + 1) = ( + 1) = + = ( n 3 )
4 2 4 2 8 4
T (n) = (n 3 )
, 30, 1.6: 8

B.
2.
(..)

T (n) = (n 3 ) T (n) = (n 3 ) : T (n) = (n 3 )


n
(n) =
2
i=n / 2
i
, T (n) = an + bn + cn + d
3 2

:
an 3 + bn 2 + cn + d = i = n / 2 i 2
n

n=1,n=2,n=3,n=4 4 4
:
a +b + c + d =1
8a + 4b + 2c + d = 5
27a + 9b + 3c + d = 14
64a + 16b + 4c + d = 29
a = 0,33, b = 0,5, c = 0,16, d =0

: T (n) = 0,33n 3 + 0,5n 2 + 0,16n


, 30, 1.6: 9

.
1
:
T ( n) = log( n!)
, 30, 1.6: 10

.
2

T ( n) = i = n / 3 i
n

You might also like