Review of Chapter 5 張啟中. Selection Trees Selection trees can merge k ordered sequences (assume...
-
Upload
annabel-robey -
Category
Documents
-
view
220 -
download
3
Transcript of Review of Chapter 5 張啟中. Selection Trees Selection trees can merge k ordered sequences (assume...
Review of Chapter 5
張啟中
Selection Trees Selection trees can merge k ordered sequences (assume in non-
decreasing order) into a single sequence easily. Two kinds of selection trees
Winner trees A winner tree is a complete binary tree The root represents the smallest node in the tree. Each leaf node represents the first record in the corresponding run. Each non-leaf node in the tree represents the winner of its right and l
eft subtrees. Loser tress
A loser tree is a complete binary tree. Each nonleaf node retains a pointer to the loser is called a loser tree. Each leaf node represents the first record in the corresponding run. An additional node, node 0, has been added to represent the overall
winner of the tournament.
Winner Tree (k=8)
2038
2030
152528
1550
1116
9599
1820
1516
10 9 20 6 8 9 90 17
9 6 8 17
6
6 82 3
4 5 6 7
8 9 10 11 12 13 14 15
run1 run2 run3 run4 run5 run6 run7 run8
1
Winner Tree (k=8)
2038
2030
2528
1550
1116
9599
1820
1516
10 9 20 15 8 9 90 17
9 15 8 17
8
9 82 3
4 5 6 7
8 9 10 11 12 13 14 15
run1 run2 run3 run4 run5 run6 run7 run8
1
O(nlogk)
Loser Tree
2038
2030
152528
1550
1116
9599
1820
1516
10 9 20 6 8 9 90 17
10 20 9 90
8
9 172 3
4 5 6 7
8 9 10 11 12 13 14 15
run1 run2 run3 run4 run5 run6 run7 run8
1
60 Overall
winner
Forests Definition
A forest is a set of n ≥ 0 disjoint trees. When we remove the root of a tree, we’ll get
a forest.
A
B C D
E
F
G
H I
Transforming A Forest Into A Binary Tree Definition
If T1, …, Tn is a forest of trees, then the binary tree corresponding to this forest, denoted by B(T1, …, Tn) is empty if n = 0 has root equal to root (T1); has left subtree equal t
o B(T11, T12,…, T1m), where T11, T12,…, T1m are the subtrees of root (T1); and has right subtree B(T2, …, Tn).
Transforming A Forest Into A Binary Tree
A
B
C
D
E
FG
H
I
Forest Traversals
Preorder Inorder Postorder (not natural) Level-order
The Satisfiability Problem
Expression Rules A variable is an expression If x and y are expressions then are expressions Parentheses can be used to alter the normal order of evalu
ation, which is not before and before or. The satisfiablitity problem for formulas of proposition
calculus asks if there is an assignment of values to the variables that causes the values of the expression to be true.
The satisfiablitity problem is NP-Complete problem.
xandyxyx ,,
The Satisfiability Problem
x1 x3
x2 x1
x3
33121 )()( xxxxx
O(2n)
Set Representation
Trees can be used to represent sets. Pairwise Disjoint Sets
If Si and Sj, i≠j, are two sets, then there is no element that is in both Si and Sj.
Set Operations Disjoint set union
If Si and Sj are two disjoint sets, then their union S
i S∪ j = {all elements x such that x is in Si or Sj}. Find(i)
Find the set containing element i.
Set Representation
4
1 9
2
3 5
0
6 7 8
S1= {0,6,7,8} S2 = {1, 4, 9} S3={2,3,5}
n=10
0
6 7 8 4
1 9
0
6 7 8
4
1 9OR
Disjoint Set Union
S1 U S2
Data Representation for S1, S2, S3
S1
S2
S3
4
1 9
2
3 5
0
6 7 8
Set
Name Pointer
Array Representation of S1, S2, S3
i [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
parent -1 4 -1 2 -1 2 0 0 0 4
Degenerate Tree
n-1
n-2
0
union(0, 1), find(0)
union(1, 2), find(1)
union(n-2, n-1), find(n-1)
Union operation O(n) Find operation O(n2)
Improve the performance of Set Union and Find Algorithms Weighting Rule [Weighting rule for union(I, j)]
If the number of nodes in the tree with root i is less than the number in the tree with root j, then make j the parent of i; otherwise make i the parent of j.
Collapsing Rule If j is a node on the path from i to its root and pare
nt[i]≠ root(i), then set parent[j] to root(i).
Set Union with The Weighting Rule
0 1 n-1 0 2 n-1
1
0 3 n-1
1 2
0 4 n-1
1 32
0
1 32 n-1
Set Find with Collapsing Rule
0
3
[-8]
1 2 4
7
5 6
0
3
[-8]
1 2 4 7
5
6
Before collapsing
After collapsing
Equivalence Class
0 1 2 3 4 5 6 7
[-1] [-1] [-1] [-1] [-1] [-1] [-1] [-1]
8 9 10 11
[-1] [-1] [-1] [-1]
0 3 6 8
[-2] [-2] [-2] [-2]
2 5 7 11
[-1] [-1] [-1] [-1]
4 1 10 9
(a) Initial trees
(b) Height-2 trees following 0≡4, 3≡1, 6≡10, and 8≡9
Equivalence Class
0
[-3]
4 7
6
9
[-4]
10 8
3
[-3]
1 5
2
[-2]
11
0
[-3]
4 7 2
11
6
9
[-4]
10 8
3
[-3]
1 5
(d) Thees following 11≡0
(C) Trees following 7≡4, 6≡8, 3≡5, and 2≡11
Counting Binary Trees
Problem Determine the number of distinct binary trees
having n nodes. Determine the number of distinct permutations of
the numbers from 1 through n obtainable by a stack.
Determine the number of distinct ways of multiplying n+1 matrices.
Distinct binary trees
n=0 or n=1 1 binary tree n=2 2 distinct binary trees.
n=3 5 distinct binary trees ( 自己練習畫 )
bn
bi bn-i-1
1,1, 01 bandnbbb inin
Stack Permutations How many permutations can we obtain by pas
sing the numbers 1 through n through stack ? See chapter 3 about stack.
For example, the numbers 1, 2, 3
(1,2,3) (1,3,2) (2,1,3) (2,3,1) (3,2,1) but (3,1,2) The recursive formula is
bn = b0bn-1 + b1bn-2 + …… + bn-2b1+ bn-1b0
Construct The Binary Tree from Preorder and Inorder Sequence Give preorder and inorder sequence as follows.
preorder sequence A B C D E F G H IInorder sequence B C A E D G H F I
Problem Does such a pair of sequences uniquely define a bi
nary tree ? (Can this pair of sequences come from more than one binary tree?)
Conclusion Every binary tree has a unique pair of preorder / ino
rder sequences.
Construct The Binary Tree from Preorder and Inorder Sequence
A
B, C D, E, F, G, H, I
A
D, E, F, G, H, IB
C
A
B
C
D
FE
IG
H
Inorder and Preorder Permutations
A
B
C
D
FE
IG
H
1
2
3
4
65
97
8
Preorder: 1, 2, 3, 4, 5, 6, 7, 8, 9
Inorder: 2, 3, 1, 5, 4, 7, 8, 6, 9
Stack PermutationsPreorder permutation 1, 2, 3
1
2
3
1
2
3
1
32
1
2
3
1
2
3
(1, 2, 3) (1, 3, 2) (2, 1, 3) (2, 3, 1) (3, 2, 1)
Inorder permutations
Stack Permutations
The number of distinct permutations by passing 1..n through stack
The number of distinct Binary Trees with n nodes
Inorder permutations obtainable from binary trees having the preorder permutations, 1,2,3,….,n
≡
≡
Matrix Multiplication Computing the product of n matrices
M1 * M2 * … * Mn
By matrix multiplication associative law, we can perform these multiplications in any order.
For example, n=3 (n=4 自己練習 )
(M1 * M2) * M3
M1 * (M2 * M3)
The number of distinct ways to obtain M1 * M2 * … * Mn
1
1
1,n
iinin nbbb
Number of Distinct Binary Trees Let
which is the generating function for the number of binary trees.
By the recurrence relation we get
i
ii xbxB
0
)(
1)()(2 xBxxB
x
xxB
2
411)(
mmm
mn
n xm
xnx
xB 12
00
2)1(1
2/1)4(
2/11
2
1)(
)/4(2
1
1 2/3nObn
n
nb n
nn