ورود به سیستم dade va algoritmha... · 2018. 12. 3. · 14 ( ().2-1 n 1 f n 19 16 15 14...
TRANSCRIPT
14
1-2. )( ) (
n f n 1 21 31 41
51 61 91
1O 1 secn 1 secn 1 secn 1 secn 1 secn 1 secn 1 secn
lgn / secn3 3sec/ n6 6 / secn9 9sec/ n13 2sec/ n16 6/ secn19 9sec/ n29 9
n secn1 secn11 sec sec1 sec1secm1 1 sec
lgn n
lgn n
secn33 secn664 / sec9 9sec132/ secm1 6/ secm19 9/ sec29 9
2n secn1 sec1 1 secm secm1sec1 / min16 6 / yrs31 7
3n sec1 1 secm 1 sec min/16 6 / days11 6/ yrs31 7 yrs13 1
2 2n sec1 yrs134 1- - - - -
1-2-1
t n .
n .
» «.
.
: 1 2.
> < == .
.
.
) ( .3
4 .5
.
1. Comparative operators 2. Arithmetic operators
3 . .
4. Overhead 5 .
.
: 29
2- 1
)1-15( f n O f n
3- )(2
)1-16( g n O h n f n O h n f n O g n
Big-O 3 4 ) .(
)1-17(
, m
f n O n f n O n
f n O n
f n O n m
2 3
4
2
)1-18( f n O n3 f n O n2
)1-19( log logf n O g n f n O g n
)1-20( f n O g n f n g nO2 2
1-20 f n n2 g n n .
)1-21( log loga bf n O f n
1-4-2
Big-Omega 5 .
f n g n f g .
:
)1-22( , | ; o of n g n c n n n f n c g n
:f g n c
n )on n( f n c g n .
Big-O .
Big-O Big-Omega
)
.(
1. Reflexivity 2. Transitivity 3. Antisymmetry 4. Symmetry 5. Lower bound
44
:
11 1 3 .
- 000
1 001
2 010
1 011
3 100
1 101
2 110
1 111
m m O m
.
1-15. :
2
1 3
,
,
n nf n
n n
2 3
1
1
,
,
n nf n
n n
2 5
3/f n n
i j :
( i jf n O f n
( i jf n f n
1-16. O o
.
o O
1 13 3n n
23 3n
n
log ! log nn n
2sinnn
n ba n
loga bn n
74
2-4 .
2-4 . n2 .
) . ( ) . ( 1n-
) . (
) . ( 2n-2 ) . (
.
2-1. 1 :
.
. .
2-2. 2-15 11
13 .
11 Hanoi( 2n - 2, C, A, B ); 12 MOVE ( A C ); 13 Hanoi( 2n - 1, B, A, C );
2-3. 2
.
2-4. logn
logn .
1. Restricted Tower of Hanoi puzzle 2. Merge-sort algorithm
94
17. . g ( , )g x y x y
.:
( , , )f 8 3 ) - 85(
1 f( int a, int b, int c ) 2 {
3 int m =
a b
2 ; 4 if ( c > 0 ) 5 { 6 g( m, c ); 7 f( a, m, c � 1); 8 f( m, b, c � 1); 9 } 10 }
1(
2(
3(
4(
18. ( ) logT n T n n2 . ( )T n
) - 85(
1( ( ) (log log )T n O n
2( ( ) (log log log )T n O n n
3( ( ) ( log log )T n O n n
4( ( ) ( log log )T n O n n n
134
3-16
1 ADD( A, B : SPARSE ) : SPARSE 2 { 3 if A.originRow B.originRow then 4 Error( �Matrix Mismatch� ); 5 if A.originColumn B.originColumn then 6 Error( �Matrix Mismatch� ); 7 var C : SPARSE; 8 CREATE(C, A.originRow, A.originColumn); 9 var indexC : integer; 10 indexC = 1; 11 var indexA, indexB : integer; 12 indexA = 1; 13 indexB = 1; 14 while indexA A.terms and indexB B.terms do 15 { 16 var rowA, colA, valA : integer; 17 var rowB, colB, valB : integer; 18 rowA = A.Data[indexA][1]; 19 colA = A.Data[indexA][2]; 20 valA = A.Data[indexA][3]; 21 rowB = B.Data[indexB][1]; 22 colB = B.Data[indexB][2]; 23 valB = B.Data[indexB][3]; 24 if (rowA, colA) < (rowB, colB) then 25 { 26 C.Data[indexC][1] = rowA; 27 C.Data[indexC][2] = colA; 28 C.Data[indexC][3] = valA; 29 indexA++; 30 indexC++; 31 } 32 else if (rowA,colA)>(rowB,colB) then 33 { 34 C.Data[indexC][1] = rowB; 35 C.Data[indexC][2] = colB; 36 C.Data[indexC][3] = valB; 37 indexB++; 38 indexC++; 39 } 40 else 41 { 42 C.Data[indexC][1] = rowA; 43 C.Data[indexC][2] = colA; 44 C.Data[indexC][3] = valA + valB; 45 indexA++; 46 indexB++; 47 indexC++; 48 } 49 } 50 while indexA A.terms do 51 { 52 var rowA, colA, valA : integer; 53 rowA = A.Data[indexA][1]; 54 colA = A.Data[indexA][2]; 55 valA = A.Data[indexA][3]; 56 C.Data[indexC][1] = rowA; 57 C.Data[indexC][2] = colA; 58 C.Data[indexC][3] = valA; 59 indexA++; 60 indexC++; 61 } 62 while indexB B.terms do 63 { 64 var rowB, colB, valB : integer; 65 rowB = B.Data[indexB][1]; 66 colB = B.Data[indexB][2]; 67 valB = B.Data[indexB][3]; 68 C.Data[indexC][1] = rowB; 69 C.Data[indexC][2] = colB; 70 C.Data[indexC][3] = valB; 71 indexB++; 72 indexC++; 73 } 74 return C; 75 }
184
k64 19 k64 51 .
L 691
:
, , , , , , , , , , , 51 115 179 243 307 371 435 499 563 627 691 723
:
, , , , , 51 179 307 435 563 691
, , 179 435 691
,435 691
435
n 729 435 .
n 22 3 5
.
204
5
1. 3 .
.
M R F .
F R ( )M n R F .
2. 4 .
4
.
: front .
front front) (
.
224
6-13:
/ 5 3 4 1 7 2 :
x
2 2 ,PUSH S x
7 2 7 ,PUSH S x
14 ,
, ,
y POP S
y POP S z y y PUSH z1
2 1 2
7
2
1 14 1 ,PUSH S x
4 14 1 4 ,PUSH S x
14 3 ,
, ,
y POP S
y POP S z y y PUSH z1
2 1 2
4
1
3 14 3 3 ,PUSH S x
5 14 3 3 5 ,PUSH S x
14 3 5 ,
, ,
y POP S
y POP S z y y PUSH z1
2 1 2
5
3
/ 14 5 35
,
, / ,
y POP S
y POP S z y y PUSH z
A B
1
2 1 2
15
3
2
19 35
,
, + ,
y POP S
y POP S z y y PUSH z
A B
1
2 1 2
5
14
2
19 S .
.
6-13. .
1 Comb( n , m : integer ) : integer 2 { 3 if n == 1 or m == 0 or m == n then 4 return 1; 5 else 6 return Comb(n�1,m)+Comb(n-1, m - 1); 7 }
234
7-4:
7-2 4 ) :a, d, h, g, z( :
( ) ( )height a height b4 2
( ) ( )height l height d 3
: .
1 : .
)7-2( ( ) ( )i iLevel n depth n 1
2 .
7-5 :
7-2 :
( )level a 1
( ) ( )level i level g 4
( )level z 5
( ) ( ) ( ) ( )level x level l level y level h 3
2 : .
7-6 :
7-2 b 7 2 .
k, j, i t 2 .
7-7 :
7-2 ) (
:
.
14 13 . 13
) ( .
.
3 : .
7-8 :
7-2 g, b, a t 3 2 1 .
1 :
.
1. Level 2. Sub-tree 3. Degree
274
7
1. »4« .
n
n
n
n
2
1
. n 4 :
8
4 71454 1
2. »2« .
1 3 9 27 40
.27 .
3. »1« .
:
:
Preorder: ABDFGE Postorder: FGDEBA
Inorder: AFDGBE 4. »3« .
)LMC (
)Right Sibling ( .
.
5. »1« .
.
:
n 62 1 2 1 64 1 63
6. »1« .
T )
.(
284
: ) (
.
. 3
.
8-1-2
1:
: .
DICTIONARY
. :
CREATE( ref D : DICTIONARY );
:
DICTIONARY .
: .
TRUE FALSE .
:
EMPTY( D : DICTIONARY ) : boolean;
2: .
. :
MAKENULL( ref D : DICTIONARY );
: .
:
INSERT( ref D : DICTIONARY; k : KeyType; x : DataType );
: KeyType
DataType .
ElementType
) ( .
1 . . 2 . Clear .
304
8-17: lgn n
n lgn n .
.
8-18:
: A
B C
. a A b B c C
a b c .
8-19: n m .
O n m .
8-3
8-2
n
n .
n .
lgn
.
lgn .
8-2-4-2 1 .
. n
lgO n n .
.
.
.
.
- 2 .
1. Balanced BST 2. Self-balancing BST
314
8-4-3 -
. - n
lgn . -
lgO n . -
x x .
- [1] .
-
. . -
lgn
lgn .
x - T x T
. x .
- . - lgO n
. -
[1] .
x - T x
T . . x
x .
.
- . - lgO n .
- [1] .
: -
. -
.
: -
O 1 .
8-5 2-3
2
- . 2-31 .
1. 2-3 tree
334
8-1: .
1
2
n n O 1 O 1 n n n n n n 3
(lg )n(lg )nn n n n O 1 O 1 O 1 O 1
BST 4
(lg )nn (lg )nn (lg )n n (lg )nn (lg )nn AVL
5 (lg )n(lg )n(lg )n(lg )n(lg )n (lg )n(lg )n(lg )n(lg )n(lg )n
RB 6
(lg )n(lg )n(lg )n(lg )n(lg )n (lg )n(lg )n(lg )n(lg )n(lg )n
2-3
(lg )n(lg )n(lg )n(lg )n(lg )n (lg )n(lg )n(lg )n(lg )n(lg )n
( lg )t n( lg )t n( lg )t n( lg )t n( lg )t n ( lg )t n( lg )t n( lg )t n( lg )t n( lg )t n
( )O a1n O 1 O 1 ( )O a1 n n n n n
O1
1( )B O
11
( )B lnO1 1
1( )B n n n n
O 1 n O 1 O 1 O 1 n n n n n
8-1
.
.
8-40: 1 .
25 95 %
.
8-41: B . n
7 .
8-42: 5 28 19 15 20 33 12 17 10
. 9 mod h k k 9
.
8-43:
1. . 2. . 3 . . 4. . 5 . . 6 . - .
7. Expected value
384
DFS
:
1 Const WHITE = 0; 2 Const GRAY = 1; 3 Const BLACK = 2; 4 5 Type VERTEX = Record 6 { 7 Color : 0..2; 8 Parent : integer; 9 } 10 Type GRAPH = Record 11 { 12 V : VERTEX[N]; 13 Adj : LIST[N]; 14 }
DFS ,G V E :
1 DFS( G : GRAPH ) 2 { 3 for u = 1 to |G.V| do 4 { 5 G.V[u].Color = WHITE; 6 G.V[u].Parent = NULL; 7 } 8 for u = 1 to |G.V| do 9 { 10 if G.V[u].Color == WHITE then 11 DFS-VISIT( G, u ); 12 } 13 } 14 15 DFS-VISIT( G : GRAPH; u : integer ) 16 { 17 var p : Position; 18 var v : integer; 19 20 G[u].Color = GRAY; 21 p = FIRST( G.Adj[u] ); 22 while p NULL do 23 { 24 v = RETRIEVE( G.Adj[u], p ); 25 if G.V[v].Color == WHITE then 26 { 27 G.V[v].Parent = u; 28 DFS-VISIT( G, v ); 29 } 30 p = NEXT( G.Adj[u], p ); 31 } 32 G.V[u].Color = BLACK; 33 }
404
11-4-3
1( .
2( : ) 8 .(
3( : .
4( : 11-3 .
11-4-1
. 11-3
) 6 7 .(
11-3 8 .
5( : ( )n2.
11-5 1
.
2
.
)
( ( )O n2 .
11-4 .
11-4 . 16 .
.
1. Shell sort 2. Interleaved sublists
434
18. .. A n1 k- i k i n k :
A i k A i A i k
1 4 2 6 3 7 5 8) ( 2- . 2-
N2 1-
) - 86(
1( N 2( 2 3( N 2 4( N2 1
19. HeapSort QuickSort MergeSort .
)stable ( ) - 88(
1( HeapSort MergeSort 2( MergeSort
3( QuickSort MergeSort 4( HeapSort QuickSort MergeSort
20. ) - 88(
1( Insertion sort) ( )n 1000 (
O n2 .
2( Merge sort) ( )n 1000 ( .
3( Heap sort) ( )n 1000 (
O n2 .
4( Quick Sort) ( )n 1000 (
O n2 .
21. ) - 88(
1( Quick sort) ( logO n n .
2( Merge sort) ( )n 1 (
.
3( Heap sort) ( logO n n .
4( Selection sort) ( logO n n .
22. A n .
) - 88(
1( quick sort 2( heap sort 3( insertion sort 4( merge sort
23. n
n
.
) - 88(
1( Insertion sort) ( 2( Merge sort) (
3( Bubble sort) ( 4( Heap sort) (
454
2:
1 n
.2
.
-1
.
) 3 (.
:
.
) (
.
-2
.
:
1( 4
2( 5
3( 6
1. Amortized analysis
2. . .
3. Amortized cost 4. Aggregate analysis 5. The accounting method (bank account analysis) 6. The potential method (physicist�s method)