Professional Documents
Culture Documents
Outline
Transform & Conquer
Instance Simplification
Gaussian Elimination
Balanced Search Trees
Rotating a Binary Search Tree
2-3 Trees
Transform/Conquer
Patrick
Transform/Conquer
Instance
Simplification
Gaussian
Elimination
Balanced Search
Trees
Insertion
Rotations
2-3 Trees
Insertion
Heaps/Heapsort
Heaps
Heapsort
39
Outline
Transform & Conquer
Instance Simplification
Gaussian Elimination
Balanced Search Trees
Rotating a Binary Search Tree
2-3 Trees
Transform/Conquer
Patrick
3
Transform/Conquer
Instance
Simplification
Gaussian
Elimination
Balanced Search
Trees
Insertion
Rotations
2-3 Trees
Insertion
Heaps/Heapsort
Heaps
Heapsort
39
Transform/Conquer
Instance
Simplification
Gaussian
Elimination
Balanced Search
Trees
Rotations
2-3 Trees
Insertion
Heaps/Heapsort
Heaps
Heapsort
39
Arithmetic Mean
Patrick
5
Gaussian
Elimination
i=1
Balanced Search
Trees
Rotations
2-3 Trees
Insertion
x =
N
X
Heaps/Heapsort
wi xi
Heaps
Heapsort
i=1
where
Transform/Conquer
Instance
Simplification
N
1 X
xi
x =
N
N
X
wi = 1
i=1
39
Transform/Conquer
Instance
Simplification
300 Students
Gaussian
Elimination
Balanced Search
Trees
Rotations
2-3 Trees
Insertion
Heaps/Heapsort
Heaps
Heapsort
39
Example Solution
Transform/Conquer
Patrick
7
A1,1 A1,2
A2,1 A2,2
.
..
..
.
A300,1 A300,2
..
..
..
..
..
.
.
.
.
.
. . . Q300,5 M300,1 M300,2 F300
w A1
wA
2
.
.
.
w A5
wQ 1
wQ 2
..
.
wQ
5
wM
1
wM
2
wF
Transform/Conquer
Instance
Simplification
Gaussian
Elimination
Balanced Search
Trees
x1
x2
..
.
x300
Rotations
2-3 Trees
Insertion
Heaps/Heapsort
Heaps
Heapsort
39
Example Solution
Transform/Conquer
Patrick
8
A1,1 A1,2
A2,1 A2,2
.
..
..
.
A300,1 A300,2
..
..
..
..
..
.
.
.
.
.
. . . Q300,5 M300,1 M300,2 F300
0.1
0.1
.
.
.
0.1
0.02
0.02
..
.
0.02
0.1
0.1
0.2
Transform/Conquer
Instance
Simplification
Gaussian
Elimination
Balanced Search
Trees
x1
x2
..
.
x300
Rotations
2-3 Trees
Insertion
Heaps/Heapsort
Heaps
Heapsort
39
Types of Transformations
Transform/Conquer
Patrick
9
Transform/Conquer
Instance
Simplification
Gaussian
Elimination
Balanced Search
Trees
Rotations
2-3 Trees
Insertion
Heaps/Heapsort
Heaps
Heapsort
39
Instance Simplification
Question: If a problem can be solved as is in O n2 time, but simplified in O (n log n) time and
the simplified version can be solved in O (n) time, is the simplification worth it?
Transform/Conquer
A. Yes
B. No
Patrick
Transform/Conquer
10
Instance
Simplification
Gaussian
Elimination
Balanced Search
Trees
Rotations
2-3 Trees
Insertion
Heaps/Heapsort
Heaps
Heapsort
39
Presorting
Transform/Conquer
Patrick
Transform/Conquer
11
Instance
Simplification
Gaussian
Elimination
Balanced Search
Trees
Rotations
2-3 Trees
Insertion
Heaps/Heapsort
Heaps
Heapsort
39
Presorting
Examples
Transform/Conquer
Patrick
Transform/Conquer
12
Instance
Simplification
Gaussian
Elimination
Balanced Search
Trees
Duplicate Elements
Rotations
2-3 Trees
Insertion
Mode
Heaps/Heapsort
Heaps
Heapsort
39
Outline
Transform & Conquer
Instance Simplification
Gaussian Elimination
Balanced Search Trees
Rotating a Binary Search Tree
2-3 Trees
Transform/Conquer
Patrick
Transform/Conquer
Instance
Simplification
13
Gaussian
Elimination
Balanced Search
Trees
Insertion
Rotations
2-3 Trees
Insertion
Heaps/Heapsort
Heaps
Heapsort
39
Gaussian Elimination
Transform/Conquer
Patrick
Transform/Conquer
Instance
Simplification
14
Gaussian
Elimination
Balanced Search
Trees
LU Decomposition
Rotations
2-3 Trees
Insertion
Matrix Inverse
Heaps/Heapsort
Determinant
Heaps
Heapsort
39
Outline
Transform & Conquer
Instance Simplification
Gaussian Elimination
Balanced Search Trees
Rotating a Binary Search Tree
2-3 Trees
Transform/Conquer
Patrick
Transform/Conquer
Instance
Simplification
Gaussian
Elimination
15
Insertion
Balanced Search
Trees
Rotations
2-3 Trees
Insertion
Heaps/Heapsort
Heaps
Heapsort
39
Gaussian
Elimination
16
Balanced Search
Trees
Rotations
2-3 Trees
Insertion
Heaps/Heapsort
Heaps
Heapsort
39
Gaussian
Elimination
17
Balanced Search
Trees
Rotations
2-3 Trees
Insertion
How do we do that?
Heaps/Heapsort
Heaps
Heapsort
39
Example Trees
Inserting the Values 1, 2, and 3
Transform/Conquer
Patrick
Input: 1, 2, 3
1
Transform/Conquer
Input: 2, 1, 3 or 2, 3, 1
Instance
Simplification
Gaussian
Elimination
Balanced Search
Trees
2
18
Rotations
2-3 Trees
Insertion
Heaps/Heapsort
Heaps
Heapsort
Rotating the BST on the left can result in the BST on the right.
39
Gaussian
Elimination
Balanced Search
Trees
19
Rotations
2-3 Trees
Insertion
Heaps/Heapsort
Heaps
Heapsort
39
Rotating a BST
Transform/Conquer
Patrick
Transform/Conquer
Instance
Simplification
Gaussian
Elimination
Rotation replaces a node with one of its child nodes . . . and updates the
subtrees accordingly
Balanced Search
Trees
20
The direction that the parent node moves (left/right) describes the type of
rotation performed
Rotations
2-3 Trees
Insertion
Heaps/Heapsort
Heaps
Heapsort
39
Instance
Simplification
Gaussian
Elimination
Balanced Search
Trees
21
Rotations
2-3 Trees
Insertion
Heaps/Heapsort
Heaps
Heapsort
3. New roots left children become old roots right children ( old root)
Right Rotation is Mirror of Left Rotation
39
Rotating a BST
Double Rotation
Transform/Conquer
Patrick
Transform/Conquer
Instance
Simplification
Gaussian
Elimination
Balanced Search
Trees
22
Left-Right: Left Rotate Left Subtree, Right Rotate Entire Resulting Tree
Rotations
2-3 Trees
Insertion
Heaps/Heapsort
Right-Left: Right Rotate Right Subtree, Left Rotate Entire Resulting Tree
Heaps
Heapsort
39
Rotating a BST
Double Rotation Example
Transform/Conquer
Patrick
Transform/Conquer
Instance
Simplification
Gaussian
Elimination
Balanced Search
Trees
23
Rotations
2-3 Trees
Insertion
Heaps/Heapsort
Heaps
Heapsort
39
2-3 Trees
Transform/Conquer
Patrick
Transform/Conquer
Instance
Simplification
Gaussian
Elimination
Balanced Search
Trees
2-nodes are Binary Nodes (Left Children <, Right Children >)
3-nodes have 2 Keys: (Left Children < Key1 , Right Children > Key2 ,
Middle Children > Key1 and < Key2 )
24
Rotations
2-3 Trees
Insertion
Heaps/Heapsort
Heaps
Heapsort
39
Gaussian
Elimination
Balanced Search
Trees
25
Rotations
2-3 Trees
Insertion
Heaps/Heapsort
Heaps
Heapsort
39
Gaussian
Elimination
Balanced Search
Trees
26
Rotations
2-3 Trees
Insertion
Heaps/Heapsort
Heaps
Heapsort
39
Example
Figure 6.8, Page 225
Transform/Conquer
Patrick
Transform/Conquer
Instance
Simplification
Gaussian
Elimination
Balanced Search
Trees
27
Rotations
2-3 Trees
Insertion
Heaps/Heapsort
Heaps
Heapsort
39
Outline
Transform & Conquer
Instance Simplification
Gaussian Elimination
Balanced Search Trees
Rotating a Binary Search Tree
2-3 Trees
Transform/Conquer
Patrick
Transform/Conquer
Instance
Simplification
Gaussian
Elimination
Balanced Search
Trees
Insertion
Rotations
2-3 Trees
Insertion
28
Heaps/Heapsort
Heaps
Heapsort
39
Gaussian
Elimination
Priority Queue
Balanced Search
Trees
Rotations
2-3 Trees
Insertion
Job Scheduling
Any Task Where Order is Important
Heaps/Heapsort
29
39
Heaps
Heapsort
Heap
Definition
Transform/Conquer
Patrick
Transform/Conquer
Instance
Simplification
Binary Tree
Gaussian
Elimination
Balanced Search
Trees
Rotations
2-3 Trees
Insertion
Heaps/Heapsort
30
39
Heaps
Heapsort
Heap
Properties
Transform/Conquer
Patrick
Transform/Conquer
Instance
Simplification
Gaussian
Elimination
Balanced Search
Trees
Rotations
2-3 Trees
Insertion
No Left-to-Right Order
Heaps/Heapsort
31
39
Heaps
Heapsort
Heap
Construction: Bottom-Up
Transform/Conquer
Patrick
Transform/Conquer
Instance
Simplification
Gaussian
Elimination
Balanced Search
Trees
Rotations
2-3 Trees
Insertion
Efficiency?
Heaps/Heapsort
32
39
Heaps
Heapsort
Heap
Construction: Top-Down
Transform/Conquer
Patrick
Transform/Conquer
Instance
Simplification
Gaussian
Elimination
Balanced Search
Trees
Rotations
2-3 Trees
Insertion
Efficiency?
Heaps/Heapsort
33
39
Heaps
Heapsort
Heap
Node Deletion
Transform/Conquer
Patrick
Transform/Conquer
Instance
Simplification
Gaussian
Elimination
Balanced Search
Trees
2. Remove Node
Rotations
2-3 Trees
Insertion
3. Heapify Tree
Heaps/Heapsort
34
39
Heaps
Heapsort
Heapsort
Algorithm
Transform/Conquer
Patrick
Transform/Conquer
Instance
Simplification
Gaussian
Elimination
Balanced Search
Trees
Rotations
2-3 Trees
Insertion
Heaps/Heapsort
35
39
Heaps
Heapsort
Heapsort
Special Properties
Transform/Conquer
Patrick
Transform/Conquer
Instance
Simplification
Gaussian
Elimination
Balanced Search
Trees
In Place
Rotations
2-3 Trees
Insertion
Heaps/Heapsort
36
39
Heaps
Heapsort
Heapsort
Example: Figure 6.14, Page 232
Transform/Conquer
Patrick
Transform/Conquer
Instance
Simplification
29
Gaussian
Elimination
Balanced Search
Trees
96
Rotations
2-3 Trees
Insertion
78
Heaps/Heapsort
37
62
..
.
9
87
7
39
Heaps
Heapsort
Heapsort
Example: Figure 6.14, Page 232 (Continued)
Transform/Conquer
Patrick
978526
Transform/Conquer
Instance
Simplification
Gaussian
Elimination
9
7
8
5
7
2
6
5
2
9
6
6
6
6
6
6
2
2
8
8
7
7
5
7
5
2
2
2
2
2
5
5
5
622
Balanced Search
Trees
8755
Rotations
2-3 Trees
Insertion
Heaps/Heapsort
38
39
Heaps
Heapsort
Any Questions?
Transform/Conquer
Patrick
Transform/Conquer
Instance
Simplification
Gaussian
Elimination
Balanced Search
Trees
Rotations
2-3 Trees
Insertion
Heaps/Heapsort
39
39
Heaps
Heapsort