Daa Unit-2
Daa Unit-2
O (n )
log ba
(n )
log ba
(n log k n)
log ba
(n log k+ 1 n)
log ba +
(n )
TM
TM
TM
an
25
TM
TM
Trial#1 0 0 0 0 1
Trial#2 0 0 0 0 1
Pattern
matching
0 0 0 0 1
TM
1 996
x, y P x, y
2 2
d Pi , Pj xi – xj yi –yj
Pi Pj
n–1
j i 1
TM
TM
Step 13 Step 14
1 Extreme
2 points
7
6
8 3
5
4
Convex Hull
Pi
TM
2 2
1
4 3
4
2 3
5
TM
5 3
8 7
1
c d
wi vi
wi vi
TM
wi vi
wi vi
wi vi
wi vi
wi vi
wi vi
wi vi
wi
wi
wi
i th j th
TM
2, 1, 3, 4
1, 2, 3, 4 >
1, 2, 4 , 3
1, 2, 3, 4 >
< 1, 3, 4 , 2
1, 4 , 2, 3
1, 4 , 3, 2
2, 1, 3, 4 >
2, 1, 4 , 3
2, 3, 1, 4 >
TM
TM
Problem of size n
Solution to Solution to
sub problem 1 sub problem 2
Solution to original
problem
TM
Solution 1 Solution 2
Solution to
(a0 + ... + an–1)
Time for
size n/b
Time for Number of Time required for
size n subinstances dividing the problem
into subproblem
bk
T (b k ) aT (b k b) f (b k )
aT (b k 1) f(b k )
a [aT(b k 2) f(b k 1 )] f (b k )
a 2 T (b k 2) af (b k 1) f (b k )
T (b k 2)
a 2 [aT (b k 3) f (b k 2 )] af (b k 1) f (b k )
a 3 T (b k 3) a 2 f (b k 2) af (b k 1) f (b k )
TM
ak ak ak
a kT(1) f(b) f (b 2 ) ... f (b k )
a a2 ak
ak
f(b) f(b 2 ) f(b k )
a k T(1) ... +
a a2 ak
k f(b j )
a k T(1)
j 1 aj
log bx log ba
a x
ak
log bn log ba
ak a n
k
a k T(1) f(b j ) a j
j 1
log bn
log ba
n T(1) f(b j ) a j
j 1
TM
TM
TM
TM
) 2
) 3
TM
TM
TM
10 20 30 40 50 60
Left Right
sublist Mid sublist
Array A [ ]
40 50 60
Mid
TM
temp
10 20 30 40 50 60 NULL
mid
temp ?
40 50 60 NULL
mid
TM
Cw log 2 n 1
log 2 (n 1)
log 2 (13+ 1)
3 14 27 31 39 42 55 70 74 81 85 93 98
Mid
element
55
3 14 27 31 39 42 70 74 81 85 93 98
Mid Mid
TM
27 81
3 14 31 39 42 70 74 85 93 98
55
27 81
3 39 70 93
NULL 14 31 42 NULL 74 85 98
Number of
comparisions
Key for successful
55 [1] search
value
[2] 27 81 [2]
yes 1 1 1 1 41
C avg 1 1 2 2 3 4 4 6
13 13 13 13 13
TM
27 81
3 39 70 93
NULL 14 31 42 NULL 74 85 98
Unsuccessful
search
1 1
C no
avg 3 2 4 12
14 14
54
14
TM
Divide Divide
70 20 30 40 10 50 60
Divide Divide
70 20 30 40 10 50 60
Divide Divide
70 20 30 40 10 50 60
Merge Merge
20 70 30 10 40 50 60
Merge Merge
20 30 70 10 40 50 60
Merge Merge
10 20 30 40 50 60 70
0 1 2 3 4 5 6 7 8 9
18 29 68 32 43 37 87 24 47 50
18 29 68 32 43 37 87 24 47 50
18 29 68 32 43 37 87 24 47 50
18 29 68 32 43 37 87 24 47 50
18 29 32 43 37 87 47 50
18 29 37 87
18 29 68 24 37 87
18 29 32 43 68 24 37 47 50 87
18 24 29 32 37 43 47 50 68 87
TM
Divide Divide
38 27 43 3 9 82 10
Divide Divide
38 27 43 3 9 82 10
Divide
38 27 43 3 9 82 10
Merge Merge
27 38 43 3 9 10 82
Merge Merge
27 38 43 3 9 10 82
Merge
3 9 10 27 38 43 82
is a sorted list
0 1 2 3 4 5 6 7 8
122 25 70 175 89 90 95 102 123
122 25 89 175
25 70 122
TM
TM
12 24 8 71 4 23 6 89 56
12 24 8 71 4 23 6 89 56
12 24 8 71 4 23 6 89 56
12 24 8 71 4 23 6 89 56
8 12 24 71 4 6 23 89 56
8 12 24 71 4 6 23 56 89
6 6 8 12 23 24 56 71 89
TM
4
1 This list is further
subdivided This list can be
subdivided
0 1 2 3
70 20 30 40
2 This list is
3 This list
subdivided can be Merge sort (A, mid+1, high)
subdivided
70 20 30 40 10 50 60
This list
7 Combine 5 can be
Combine two
subdivide
sublists in
temp array 6 10 50 10
Combine two
sublists
20 70 30 40 9 Combine two
sublists
8 Combine
these two 10 50
20 30 40 70 sublists
10 50 60
11 Combine two
sublists
10 20 30 40 50 60 70
TM
k = 1. It is advanced later on
temp
10 20
if part of algorithm
0 1 gets executed
k
moves ahead
TM
A (left sublist) A (right sublist)
20 30 40 70 10 50 60
i j
TM
TM
nd
bd
21
(n log 2 n)
(n log 2 n)
n 2k
TM
T (2 k ) 2T (2 k 1) c 2k
T (2 k ) 2T (2 k 1) c 2k
2 [2T (2 k 2
) c 2k 1
] c 2k
2 2 T (2 k 2
) 2 c 2k 1
c 2k
2k
2 2 T (2 k 2) 2 c c 2k
2
2 2 T (2 k 2) c 2k c 2k
T (2 k ) 2 2 T (2 k 2
) 2c 2 k
T(2 k ) 2 3 T (2 k 3) 3c 2 k
2 4 T (2 k 4) 4c 2 k
2 k T (2 k k) k c 2k
2 k T (2 0 ) k c 2 k
T(2 k ) 2 k T (1) k c 2 k
T (2 k ) 2k 0 k c 2k
T (2 k ) k c 2k
2k
log 2 n
log 2 n cn
TM
(n log 2 n)
TM
TM
TM
TM
TM
Low high
5 3 1 9 8 2 4 7
Pivot i j
0 1 2 3 4 5 6 7
5 3 1 9 8 2 4 7
Pivot i i i jj
Swap A [i] and A [j]
0 1 2 3 4 5 6 7
5 3 1 4 8 2 9 7
Pivot ii jj
TM
0 1 2 3 5 6 7
2 3 1 4 8 9 7
Pivot i jj Pivot i j
Swap A [i] and A [j] Swap A [i] and A [j]
2 1 3 4 8 7 9
Pivot i j Pivot i j
0 1 2 3 5 6 7
2 1 3 4 8 7 9
Pivot j i Pivot j i
As j < i Swap As j < i Swap
A [Pivot] and A [j] A [Pivot] and A [j]
0 1 2 3
1 2 3 4 7 8 9
2 3
3 4
Pivot i/j
0 1 2 3 4 5 6 7
1 2 3 4 5 7 8 9
TM
TM
n
n items
n–1
n – 1 items
1
....
n – 2 items
2
....
n – 3 items
3
1
n (n 1) 1 2
n
2 2
(n 2 )
(n 2 )
TM
2
(T(0) T(1) ..... T(n 2) T(n 1) cn)
n
T(n) T(n 1) 2c
n 1 n n 1
T(n) T(0) 1 1 1 1
2c ....
n 1 1 2 3 n 1 n
T(n) T(0) 1 1 1 1
+ 2c ....
n 1 1 2 3 n n+1
2c(H n 1 1)
1 1 1
Hn 1 ......
2 3 n
T(n)
c log n
n 1
(n + 1)c log n
TM
(nlog n)
TM
Heap sort
TM
12 9
We start
heapifying
8 from
7 10 18
bottom
14
Heapifying
this 14 12 18 8 7 10 9
tree
12 18
8 7 10 9
18
18 12 14 8 7 10 9
12 14
8 7 10 9
18
18 12 14 8 7 10 9
8 7 10 9
TM
12 14
8 7 10 18 Delete
it and put it
at the end in array
14
14 12 9 8 7 10 18
12 9 Heapified
8 7 10
14 10 10 12 9 8 7 14 18
swapping
12 9 12 9
8 7 10 8 7 14 Delete it
and put
in the array
at the end
10
12 9 Heapify 10 12 9 8 7 14 18
8 7 14
12
swap
10 9 12 10 9 8 7 14 18
8 Heap to be
7
processed
10 9 7 10 8 12 14 18
Heap to be
8 12 Delete processed
it
10 9 7 10 9 8 12 14 18
Heap to be
8 processed
TM
9 7 9 8 9
10
8 8 7
10 8 9 7 12 14 18
10 7
Swap
and 7 8 9 10 12 14 18
8 9 8
delete 9
10
9 9 8 7 10 12 14 18
7
Heapify
8 7
8 9
7
9 7 8 9 10 12 14 18
Swap
8 9 Delete
8 7
8 8 7 9 10 12 14 18
7
Heapify
7
8
TM
Swap 8
7
7
7 8 9 10 12 14 18
8 Delete
7 8 9 10 12 14 18
7
List is sorted using
heap sort method.
4 4 2
7 7 2 7 4
2 2 1
7 4 1 4 2 4
1 7 7
TM
2 4
7 3
1 3
Swap
1
2 4 2 4
Queue
7 3 7 1 Delete
and insert
in queue
3 2 7
Swap
1 2
2 4 3 4 3 4
Queue
7 7 2 Delete
and insert
in queue
7 3 4
Swap
3 4 7 4 7 3 Delete
and insert in queue
1 2 3
TM
Swap
7 4 Delete 1 2 3 4
and insert
in queue
7 Delete it 1 2 3 4 7
and insert
in queue This is sorted
list of elements
TM
A S
Y Q U E
S T I O N
A S
Y Q U E
S T I O N
TM
A S
Y Q U E
S T I O N
E E
A S Y S
Y Q U E A Q U E
S T I O N S T I O N
E Y
Y S E S
T Q U E T Q U E
N
S A I O S A I O N
TM
T S T S
E Q U E S Q U E
S A I O N E A I O N
is a final heap.
T U
S Q S E
E A I O N
7 7 9
7
3 3 9 3 7
9 9 9
3 7 5 7 5 7
5 3 3 1
TM
5 7 5 13 5 9
3 1 13 3 1 7 3 1 7
13 13
5 9 5 11
3 1 7 11 3 1 7 9
13 13 13
5 11 5 11 15 11
3 1 7 9 15 1 7 9 5 1 7 9
15 3 3
15
13 11 is a required
Max heap.
5 1 7 9
15 3
Swap 13 11 13 11 15
5 1 7 9 5 1 7 9
3 15 Delete
it and
place it
in array
TM
13 11 3 11 5 11
5 1 7 9 5 1 7 9 3 1 7 9
13 Swap 9
5 11 5 11 15 13
3 1 7 9 3 1 7 13
Delete it
and place
it in array
9 11
5 11 5 9
3 1 7 3 1 7
11 7
Swap
5 9 5 9 15 13 11
3 1 7 3 1 11
Delete it
and place
it in array
7 9
5 9 5 7
3 1 3 1
TM
5 7 Swap 5 7 15 13 11 9
3 1 3 9
Delete it
and place
it in array
7 3
1 Swap
5 1 5 1
5 7
3
7 delete
3 it and
place it in array
15 13 11 9 7
3 5 Swap 1
Delete it
5 1 3 1 3 5 and place
it in array
15 13 11 9 7 5
1 3 1
3 1 Swap 3 Delete it
and place
it in array.
15 13 11 9 7 5 3
1 Delete it
and place 15 13 11 7 5 3 1
9
it in array
is sorted in descending order.
TM
16 16 22 16 22
45
5 5 5 2
45 22 45 22 2 22 5 22
16 16 2 16 45 16 45
2 2 2
5 22 5 10 5 10
16 45 10 16 45 22 16 45 22 18
2 2
5 10 5 10
16 45 22 18 16 45 22 18
30 30 50
TM
5 10 5 10
16 45 22 18 16 12 22 18
30 50 12 30 50 45
2 2 2
5 10 5 10 1 10
16 12 22 18 16 1 22 18 16 5 22 18
30 50 45 1 30 50 45 12 30 50 45 12
2 10
16 5 22 18
30 50 45 12
Min Heap
TM
42
34
168 0
10 Position
0
10 Position
1260 padding 0 at units position 1
10 Position
1
10 Position
1428
42 34 4 10 1 2 10 0 * 3 10 1 4 10 0
4 3 10 2 4 4 2 3 10 1 2 4 10 0
a b
c 2 10 2 c 1 10 1 c 0
c2 a 1 b1
c0 a 0 b0
c1 a 1 a 0 * b1 b0 c2 c0
a1 a0
b1 b0
a b
42 34 a1 a0
b1 b0
c0 , c1 , c2
c2 a 1 b1
TM
12 10 2 22 10 1 8
a b
a b
c 2 10 n c 1 10 n/2 c0
c2 a1 b1
c0 a0 b0
c1 a1 a0 b1 b0 c2 c0
c2 a 1 b1
c0 a 0 b0
c1 a1 a0 b1 b0 c2 c0
TM
C 2k 3 C 2k / 2
C 2k 3 C 2k 1
3 3 C 2k 2
3 3 3 C 2k 3
3k C 2k k
3k C 20
3k C 1 20
C 2k 3k
n 2k log 2 n
3 log 2 n
n log 2 3 a log b c c log 2 a
n 1.58
TM
(p 1 , p 2 , p 3 , ... p n )
p1 p n/ 2
p n/ 2 1 pn
TM
(c) Merge the lower and upper (d) Concatenate the joined
hulls by dotted lines hulls together
(g) Concatenate the two convex hulls to form a final convex hull.
TM
TM
TM
TM
TM
C worst (1)
TM
A [mid]
4 5 6
… 9 23 54 …
A [mid]
A [mid]
TM
123 23 1 43 54 36 75 34
123 23 1 43 54 36 75 34
123 23 1 43 54 36 75 34
Merge
23 123 43 54 36 75
1 23 123 34 36 75
1 23 43 54 123 34 36 75
1 23 34 36 43 54 75 123
TM
C worst log 2 n 1
log 2 13 1
TM
n n
T T cn
2 2
Timefor
Timetaken Timetaken combining
by left by right two
sublist to sublist to sublists
get sorted get sorted
n
2T cn
2
2k ,
2k
2T c 2k
2
T(2 k ) 2T(2 k– 1 ) c 2 k
TM
2 k– 1
2 2 T(2 k– 2 ) + 2 c + c 2k
2
2 2 T(2 k– 2 ) + 2 c 2 k
T(2 k ) 2 3 T(2 k– 3 ) + 3 c 2 k
2 k T(2 k– k ) + k c2 k
2 k T(1) + k c2 k
2 k (0) + k c2 k
T(2 k ) k c 2k
2k , log 2 n
log 2 n n c
(n log n)
2101 1130
c2 21 11
c0 01 30
c1 (21+ 01) (11+ 30) – (c 2 + c 0 )
22 41 – [(21 30) ( 01 30)]
21 11
c2 2 1
c0 1 1
c1 (2+ 1) (1+ 1) – (2 + 1)
TM
21 11 2.10 2 + 3.10 1 1
01 30
c2 0 3
c0 1 0
c1 (0 + 1) ( 3 + 0) – (0 + 0)
01 30 0.10 2 + 3.10 1 0
22 41
c2 2 4
c0 2 1
c1 (2 + 2) ( 4 + 1) – (8 + 2)
22 41 8.10 2 + 10.10 1 2
(x 1 , y 1 ), (x 2 , y 2 )
(x 3 , y 3 )
x1 y1 1
x2 y2 1 x1 y 2 + x 3 y 1 + x2 y 3 – x 3 y 2 – x2 y 1 – x1 y 3
x3 y3 1
P3 (x 3 , y 3 )
P1P2
TM