Give asymptotic upper and lower bounds for T(n) in each of the 给T渐近上界和下界(N)的每个
?????? ???? ??????
, ???? ?????
?????? ????? ????????? ??? ?? ?? )????????? ???( ????? ??? ??? .,
.n?2 ???? T(n) = O(1) ?? ???a) T(n) = T(n – 1) + n
b) T(n) = T(n – 1) + logn
9n,,T(n),T,n c) ,,10,,
n,,2T(n),16T,nd) ,,4,,
nnT(n),3T(,5),e) 32
1T(n),T(n,1),f) n
nT(n),9T(),ng) 3
?????? ?????????? ??? ?? ?? )????????? ???( ????? ??? ??? .2
a. int exp(int x, int n)
{
if (n == 0)
return 1;
else if (n == 1)
return x;
else
return x*exp(x, n-1);
}
b. k = 0;
for(int i = n; i >= n; i--)
k += exp(x, i);
Note: ‘exp’ is a function from the previous example.
c. void func2( int n )
{
if ( n<=0 )
return 1;
else
if (n % 2 )
return func2( n/2 );
else
1 ); return func2( n –
}
.3
T(n) = 2T(n/2) + 6n – 1 n ? 2 ???? T(1) = 1 ???? .?
2 T(n) = O(n) :???? ?? ????
???? .?2f ( n ) = f ( n / 2 ) + 2 log n
f ( 1 ) = f ( 0 ) = 1
:???? ?? ????3 f ( n ) = O ( log n )
.4 ?? ???-? ?????? ?????? ????? ????? .??????? ????? ?????? n ?? ???? ???? AA
. ???? ????? ???????? ??? , AO(nloglogn)logn
.5 ?? ???? .???? ,1-? ?????? ????????? ??? ?? ,??????? n ???? ?????? ?????? ????
.O(n) ??????? ?? ???? ??? .?-? ???? ??????? ??????? – ???????
:????? ??????? ??? ?????? ?? ????????? ????? ????? ???? T ?????? ?? .6
??? ?? ??? T .?
:??? ????????? ????? ??????? TR ???? ???? TL ????? ??? .?
| NumberOfNodes(TL) - NumberOfNodes(TR) | ? 1
.O(log n) ??? ???????? n ?? T ?? ?? ???? ?? ????
)????? ?????( ?????? ????? ?? ?? preorder ???? ????? .7
20, 15, 10, 5, 2, 8, 13, 18, 30, 40, 35, 37
?????? ?????? ????? ?? ?? ????
??-?? ??? ????? ??? ?? true ??????? ???????? ????? ??? ??? ???? ?????? ?????? ???? .8
.??????? ?? ???? ??? ???? .???? ??
???? ??? ???? .?????? ????? ?? ??? ?? ?? true ??????? ?????? ?? ???? ?????? ?????? ???? .9
.??????? ??
??? .????? ???? ???? ????? ??????? ????? ???? ???? ?? ?? ?????? ?????? ???? ??? .,1
.????? ??? ?????? ???? ???? ??????? ?????? ??????????? ??
.O(n logn)- ????? ?? ???? ,?????? ?????? n ?? ?????? ?? ????? ?????? – Init
. O(log n) ????? ???? ??? .????? x ?? ???? – Insert(x)
. O(1) ????? ???????? / ???????? ???? ?? ???? – Find_min, Find_max
. O(log n) ????? ???? ??? .?????? ???? ?? ???? – Find_med
. O(log n) ?????? ???????? / ???????? ???? ?? ??? – Del_min, Del_max
. O(log n) ????? ???? ??? .?????? ?????? ???? ?? ??? – Del_med
.????? ?? ???? ?????? ???? ???? ?? ??? .????? ???? ???? ??? ,5 ,,1 ,35 ?????? ???? .,,
???? 6,
71 23 ???? ????
2
???? ????
95 52 5
????????? ?? ????? 2-3 ??? .,2Tour(x)
if x is a leaf then
print (x->value); return;
if x has two children
Tour(right child);
Tour(right child);
Tour(left child);
if x has three children
Tour(leftmost child);
Tour(rightmost child)
??? ?? ?? ?????? ???? ???? ????? n ??? 2-3 ??? Tour(T) ?? T(n) ???? ??? ??)?
.??????? ?? ?????? ?????
????? ???? ?? ?? ?????? ???? ???? ????? n ??? 2-3 ??? Tour(T) ?? H(n) ???? ??? ?? )?
.??????? ?? ??????
.?????? ??? ????? )?
,T(n),,(H(n))
T(n),O(H(n)) ,
:??? ?? ?? ???? Tour(T) ?? ???? ???? ?? )?
16,-
14,- 20,-
17,- 10,13 15,- 30,40
20 5 10 13 14 15 16 17 30 40
:????? ??????? ?? ????? ?? ?????? .2-3 ??? ???? ???? ?? – ????? ???? ??? ?????? .3,insert( 1 ), insert( 2 ), …, insert( 10 ) (?????? ,1 ?"??)
.?????? ,1 ???? ?????? ??? ?? ?? ?????.?
.)21 - ?( ???? ?????? ???? ???? 1,2,…,n ?????? ?? ????? ?????? ?? ???? ????? ???
.?????? ???????? ????? ???? ?? ?? ????? ????? ???? ?? ?? ????? .?
????? ???? ??? ?? ???? 3 ,???? 2( 2-3 ?? ?? ???????? ?????? ???? ?? ???? ??? .?
.?????? ?)???????
.?????? ???????? ???? ???? ???? ??? ?????? ?????? ??????? ???? .?