Documentos de Académico
Documentos de Profesional
Documentos de Cultura
merge sort.
order.
Merge( A, p, q, r)
1. n1 q – p + 1
2. n2 r – q
4. For i 1 to n1
6. For j 1 to n2
7. do R[j] A[q + j]
Merging Algorithm
8. L[n1 + 1] ∞
9. R[n2 + 1] ∞
10. i 1
11. j 1
Merging Algorithm
12. For k p to r
15. i=i+1
17. j=j+1
Merging Algorithm
8 9 10 11 12 13 14 15 16 17
A… 2 4 5 7 1 2 3 6 …
k
1 2 3 4 5 1 2 3 4 5
L 2 4 5 7 ∞ R 1 2 3 6 ∞
i j
(a)
Merging Algorithm
8 9 10 11 12 13 14 15 16 17
A… 1 4 5 7 1 2 3 6 …
k
1 2 3 4 5 1 2 3 4 5
L 2 4 5 7 ∞ R 1 2 3 6 ∞
i j
(b)
Merging Algorithm
8 9 10 11 12 13 14 15 16 17
A… 1 2 5 7 1 2 3 6 …
k
1 2 3 4 5 1 2 3 4 5
L 2 4 5 7 ∞ R 1 2 3 6 ∞
i j
(c)
Merging Algorithm
8 9 10 11 12 13 14 15 16 17
A… 1 2 2 7 1 2 3 6 …
k
1 2 3 4 5 1 2 3 4 5
L 2 4 5 7 ∞ R 1 2 3 6 ∞
i j
(d)
Merging Algorithm
8 9 10 11 12 13 14 15 16 17
A… 1 2 2 3 1 2 3 6 …
k
1 2 3 4 5 1 2 3 4 5
L 2 4 5 7 ∞ R 1 2 3 6 ∞
i j
(e)
Merging Algorithm
8 9 10 11 12 13 14 15 16 17
A… 1 2 2 3 4 2 3 6 …
k
1 2 3 4 5 1 2 3 4 5
L 2 4 5 7 ∞ R 1 2 3 6 ∞
i j
(f)
Merging Algorithm
8 9 10 11 12 13 14 15 16 17
A… 1 2 2 3 4 5 3 6 …
k
1 2 3 4 5 1 2 3 4 5
L 2 4 5 7 ∞ R 1 2 3 6 ∞
i j
(g)
Merging Algorithm
8 9 10 11 12 13 14 15 16 17
A… 1 2 2 3 4 5 6 6 …
k
1 2 3 4 5 1 2 3 4 5
L 2 4 5 7 ∞ R 1 2 3 6 ∞
i j
(h)
Merging Algorithm
8 9 10 11 12 13 14 15 16 17
A… 1 2 2 3 4 5 6 7 …
k
1 2 3 4 5 1 2 3 4 5
L 2 4 5 7 ∞ R 1 2 3 6 ∞
i j
(i)
Merge Sort Algorithm
Merge-Sort( A, p, r)
1. If p<r
2. then q (p+r)/2
3. Merge-Sort( A, p, q)
4. Merge-Sort( A, q+1, r)
5. Merge( A, p, q, r)
Operation of Merge Sort
1 2 2 3 4 5 6 7
2 4 5 7 1 2 3 6
2 5 4 7 1 3 2 6
5 2 4 7 1 3 2 6
Analyzing Divide-and-Conquer
Algorithm
When an algorithm contains a recursive call to
If we have
The recurrence
θ(1) if n <= c
T(n)= aT(n/b) + D(n) + C(n) otherwise
Recurrence
The recurrence
θ(1) if n=1
T(n)= 2T(n/2) + θ(n) if n>1
Recurrence
problems of size 1
A Recursion Tree for the
Recurrence
T(n)
Cn
T(n/2) T(n/2)
A Recursion Tree for the
Recurrence
Cn
Cn/2
Cn/2
Cn/2 cn
Cn/2
lg n
C C C C C C cn
C
Total Running Time
numbers N={0,1,2--------------}
θ-Notation
C2g(n)
f(n)
C1g(n)
n
n0
f(n)=θ(g(n))
θ-Notation
n>=n0
θ-Notation
Diving by n2
Cg(n)
f(n)
n0 n
f(n)=O(g(n))
O-Notation
f(n)
Cg(n)
n0 n
f(n)=Ω(g(n))
Ω-Notation