sorting algorithms merge sort quick sort hairong zhao new jersey institute of technology
DESCRIPTION
3 Divide and Conquer 1.Base Case, solve the problem directly if it is small enough 2.Divide the problem into two or more similar and smaller subproblems 3.Recursively solve the subproblems 4.Combine solutions to the subproblemsTRANSCRIPT
![Page 1: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/1.jpg)
Sorting Algorithms
Merge Sort Quick Sort
Hairong Zhaohttp://web.njit.edu/~hz2
New Jersey Institute of Technology
![Page 2: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/2.jpg)
2
Overview Divide and Conquer
Merge Sort
Quick Sort
![Page 3: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/3.jpg)
3
Divide and Conquer1. Base Case, solve the problem directly
if it is small enough
2. Divide the problem into two or more similar and smaller subproblems
3. Recursively solve the subproblems
4. Combine solutions to the subproblems
![Page 4: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/4.jpg)
4
Divide and Conquer - SortProblem: Input: A[left..right] – unsorted array of integers Output: A[left..right] – sorted in non-decreasing
order
![Page 5: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/5.jpg)
5
Divide and Conquer - Sort1. Base case
at most one element (left ≥ right), return
2. Divide A into two subarrays: FirstPart, SecondPart Two Subproblems:
sort the FirstPart sort the SecondPart
3. Recursively sort FirstPart sort SecondPart
4. Combine sorted FirstPart and sorted SecondPart
![Page 6: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/6.jpg)
6
Overview Divide and Conquer
Merge Sort
Quick Sort
![Page 7: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/7.jpg)
7
Merge Sort: Idea
Merge
Recursively sort
Divide intotwo halves FirstPart SecondPart
FirstPart SecondPart
A
A is sorted!
![Page 8: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/8.jpg)
8
Merge Sort: AlgorithmMerge-Sort (A, left, right)
if left ≥ right return
else
middle ← b(left+right)/2
Merge-Sort(A, left, middle)
Merge-Sort(A, middle+1, right)
Merge(A, left, middle, right)
Recursive Call
![Page 9: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/9.jpg)
9A[middle]A[middle]A[left]A[left]
SortedSorted FirstPartFirstPart
Sorted Sorted SecondPartSecondPart
Merge-Sort: Merge
A[right]A[right]
mergemerge
A:A:
A:A:
SortedSorted
![Page 10: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/10.jpg)
10
6 10 14 223 5 15 28L:L: R:R:
Temporary ArraysTemporary Arrays
5 15 28 30 6 10 145
Merge-Sort: Merge Example
2 3 7 8 1 4 5 6A:A:
![Page 11: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/11.jpg)
11
Merge-Sort: Merge Example
3 5 15 28 30 6 10 14
L:L:
A:A:
3 15 28 30 6 10 14 22R:R:
i=0 j=0
k=0
2 3 7 8 1 4 5 6
1
![Page 12: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/12.jpg)
12
Merge-Sort: Merge Example
1 5 15 28 30 6 10 14
L:L:
A:A:
3 5 15 28 6 10 14 22R:R:
k=1
2 3 7 8 1 4 5 6
2
i=0 j=1
![Page 13: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/13.jpg)
13
Merge-Sort: Merge Example
1 2 15 28 30 6 10 14
L:L:
A:A:
6 10 14 22R:R:
i=1
k=2
2 3 7 8 1 4 5 6
3
j=1
![Page 14: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/14.jpg)
14
Merge-Sort: Merge Example
1 2 3 6 10 14
L:L:
A:A:
6 10 14 22R:R:
i=2 j=1
k=3
2 3 7 8 1 4 5 6
4
![Page 15: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/15.jpg)
15
Merge-Sort: Merge Example
1 2 3 4 6 10 14
L:L:
A:A:
6 10 14 22R:R:
j=2
k=4
2 3 7 8 1 4 5 6
i=2
5
![Page 16: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/16.jpg)
16
Merge-Sort: Merge Example
1 2 3 4 5 6 10 14
L:L:
A:A:
6 10 14 22R:R:
i=2 j=3
k=5
2 3 7 8 1 4 5 6
6
![Page 17: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/17.jpg)
17
Merge-Sort: Merge Example
1 2 3 4 5 6 14
L:L:
A:A:
6 10 14 22R:R:
k=6
2 3 7 8 1 4 5 6
7
i=2 j=4
![Page 18: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/18.jpg)
18
Merge-Sort: Merge Example
1 2 3 4 5 6 7 14
L:L:
A:A:
3 5 15 28 6 10 14 22R:R:
2 3 7 8 1 4 5 6
8
i=3 j=4
k=7
![Page 19: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/19.jpg)
19
Merge-Sort: Merge Example
1 2 3 4 5 6 7 8
L:L:
A:A:
3 5 15 28 6 10 14 22R:R:
2 3 7 8 1 4 5 6
i=4 j=4
k=8
![Page 20: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/20.jpg)
20
Merge(A, left, middle, right)1. n1 ← middle – left + 12. n2 ← right – middle3. create array L[n1], R[n2]4. for i ← 0 to n1-1 do L[i] ← A[left +i]5. for j ← 0 to n2-1 do R[j] ← A[middle+j]6. k ← i ← j ← 07. while i < n1 & j < n2 8. if L[i] < R[j] 9. A[k++] ← L[i++]10. else11. A[k++] ← R[j++]12. while i < n1
13. A[k++] ← L[i++]14. while j < n2
15. A[k++] ← R[j++] n = n1+n2
Space: n
Time : cn for some constant c
![Page 21: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/21.jpg)
21
6 2 8 4 3 7 5 16 2 8 4 3 7 5 1
Merge-Sort(A, 0, 7)Divide
A:
![Page 22: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/22.jpg)
22
6 2 8 4
3 7 5 1
6 2 8 4
Merge-Sort(A, 0, 3) , divideA:
Merge-Sort(A, 0, 7)
![Page 23: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/23.jpg)
23
3 7 5 1
8 4
6 26 2
Merge-Sort(A, 0, 1), divideA:
Merge-Sort(A, 0, 7)
![Page 24: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/24.jpg)
24
3 7 5 1
8 4
6
2
Merge-Sort(A, 0, 0) , base caseA:
Merge-Sort(A, 0, 7)
![Page 25: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/25.jpg)
25
3 7 5 1
8 4
6 2
Merge-Sort(A, 0, 0), returnA:
Merge-Sort(A, 0, 7)
![Page 26: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/26.jpg)
26
3 7 5 1
8 4
6
2
Merge-Sort(A, 1, 1), base caseA:
Merge-Sort(A, 0, 7)
![Page 27: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/27.jpg)
27
3 7 5 1
8 4
6 2
Merge-Sort(A, 1, 1), returnA:
Merge-Sort(A, 0, 7)
![Page 28: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/28.jpg)
28
3 7 5 1
8 4
2 6
Merge(A, 0, 0, 1)A:
Merge-Sort(A, 0, 7)
![Page 29: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/29.jpg)
29
3 7 5 1
8 42 6
Merge-Sort(A, 0, 1), returnA:
Merge-Sort(A, 0, 7)
![Page 30: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/30.jpg)
30
3 7 5 1
8 4
2 6
Merge-Sort(A, 2, 3)
48
, divideA:
Merge-Sort(A, 0, 7)
![Page 31: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/31.jpg)
31
3 7 5 1
4
2 6
8
Merge-Sort(A, 2, 2), base caseA:
Merge-Sort(A, 0, 7)
![Page 32: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/32.jpg)
32
3 7 5 1
4
2 6
8
Merge-Sort(A, 2, 2), returnA:
Merge-Sort(A, 0, 7)
![Page 33: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/33.jpg)
33
4
2 6
8
Merge-Sort(A, 3, 3), base caseA:
Merge-Sort(A, 0, 7)
![Page 34: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/34.jpg)
34
3 7 5 1
4
2 6
8
Merge-Sort(A, 3, 3), returnA:
Merge-Sort(A, 0, 7)
![Page 35: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/35.jpg)
35
3 7 5 1
2 6
4 8
Merge(A, 2, 2, 3)A:
Merge-Sort(A, 0, 7)
![Page 36: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/36.jpg)
36
3 7 5 1
2 6 4 8
Merge-Sort(A, 2, 3), returnA:
Merge-Sort(A, 0, 7)
![Page 37: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/37.jpg)
37
3 7 5 1
2 4 6 8
Merge(A, 0, 1, 3)A:
Merge-Sort(A, 0, 7)
![Page 38: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/38.jpg)
38
3 7 5 12 4 6 8Merge-Sort(A, 0, 3), return
A:
Merge-Sort(A, 0, 7)
![Page 39: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/39.jpg)
39
3 7 5 1
2 4 6 8Merge-Sort(A, 4, 7)
A:
Merge-Sort(A, 0, 7)
![Page 40: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/40.jpg)
40
1 3 5 7
2 4 6 8A:Merge (A, 4, 5, 7)
Merge-Sort(A, 0, 7)
![Page 41: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/41.jpg)
41
1 3 5 72 4 6 8Merge-Sort(A, 4, 7), return
A:
Merge-Sort(A, 0, 7)
![Page 42: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/42.jpg)
42
1 2 3 4 5 6 7 8Merge(A, 0, 3, 7)
A:
Merge-Sort(A, 0, 7)Merge-Sort(A, 0, 7), done!
![Page 43: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/43.jpg)
43
Merge-Sort Analysis cn
2 × cn/2 = cn
4 × cn/4 = cn
n/2 × 2c = cn
log n levels
• Total running time: (nlogn)• Total Space: (n)
Total: cn log n
n
n/2 n/2
n/4 n/4 n/4 n/4
2 2 2
![Page 44: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/44.jpg)
44
Merge-Sort SummaryApproach: divide and conquerTime
Most of the work is in the merging Total time: (n log n)
Space: (n), more space than other sorts.
![Page 45: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/45.jpg)
45
Overview Divide and Conquer
Merge Sort
Quick Sort
![Page 46: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/46.jpg)
46
Quick Sort Divide:
Pick any element p as the pivot, e.g, the first element
Partition the remaining elements into FirstPart, which contains all elements < pSecondPart, which contains all elements ≥ p
Recursively sort the FirstPart and SecondPart
Combine: no work is necessary since sorting is done in place
![Page 47: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/47.jpg)
47
Quick Sort
x < p p p ≤ x
PartitionFirstPart SecondPart
ppivot
A:
Recursive call
x < p p p ≤ x
SortedFirstPart
SortedSecondPart
SortedSorted
![Page 48: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/48.jpg)
48
Quick SortQuick-Sort(A, left, right)if left ≥ right return
else middle ← Partition(A, left,
right) Quick-Sort(A, left, middle–1 ) Quick-Sort(A, middle+1, right)
end if
![Page 49: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/49.jpg)
49
Partition
p
p x < p p ≤ x
p p ≤ xx < p
A:A:
A:A:
A:A:p
![Page 50: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/50.jpg)
50
Partition Example
A:A: 4 8 6 3 5 1 7 2
![Page 51: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/51.jpg)
51
Partition Example
A:A: 4 8 6 3 5 1 7 2
i=0i=0
j=1j=1
![Page 52: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/52.jpg)
52
Partition Example
A:A:
j=1j=1
4 8 6 3 5 1 7 2
i=0i=0
8
![Page 53: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/53.jpg)
53
Partition Example
A:A: 4 8 6 3 5 1 7 26
i=0i=0
j=2j=2
![Page 54: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/54.jpg)
54
Partition Example
A:A: 4 8 6 3 5 1 7 2
i=0i=0
383
j=3j=3
i=1i=1
![Page 55: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/55.jpg)
55
Partition Example
A:A: 4 3 6 8 5 1 7 2
i=1i=1
5
j=4j=4
![Page 56: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/56.jpg)
56
Partition Example
A:A: 4 3 6 8 5 1 7 2
i=1i=1
1
j=5j=5
![Page 57: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/57.jpg)
57
Partition Example
A:A: 4 3 6 8 5 1 7 2
i=2i=2
1 6
j=5j=5
![Page 58: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/58.jpg)
58
Partition Example
A:A: 4 3 8 5 7 2
i=2i=2
1 6 7
j=6j=6
![Page 59: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/59.jpg)
59
Partition Example
A:A: 4 3 8 5 7 2
i=2i=2
1 6 22 8
i=3i=3
j=7j=7
![Page 60: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/60.jpg)
60
Partition Example
A:A: 4 3 2 6 7 8
i=3i=3
1 5
j=8j=8
![Page 61: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/61.jpg)
61
Partition Example
A:A: 4 1 6 7 8
i=3i=3
2 542 3
![Page 62: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/62.jpg)
62
A:A: 3 6 7 81 542
x < 4x < 4 4 ≤ x4 ≤ x
pivot incorrect position
Partition Example
![Page 63: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/63.jpg)
63
Partition(A, left, right)1. x ← A[left]2. i ← left3. for j ← left+1 to right4. if A[j] < x then 5. i ← i + 16. swap(A[i], A[j])7. end if8. end for j9. swap(A[i], A[left])10. return i
n = right – left +1 Time: cn for some constant c Space: constant
![Page 64: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/64.jpg)
64
4 8 6 3 5 1 7 22 3 1 5 6 7 84
Quick-Sort(A, 0, 7)Partition
A:
![Page 65: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/65.jpg)
65
2 3 1
5 6 7 84
2 1 3
Quick-Sort(A, 0, 7)Quick-Sort(A, 0, 2)
A:
, partition
![Page 66: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/66.jpg)
66
2
5 6 7 84
1
1 3
Quick-Sort(A, 0, 7)Quick-Sort(A, 0, 0) , base case, return
![Page 67: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/67.jpg)
67
2
5 6 7 84
1
33
Quick-Sort(A, 0, 7)Quick-Sort(A, 1, 1) , base case
![Page 68: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/68.jpg)
68
5 6 7 842 1 3
2 1 3
Quick-Sort(A, 0, 7)Quick-Sort(A, 2, 2), returnQuick-Sort(A, 0, 2), return
![Page 69: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/69.jpg)
69
42 1 3
5 6 7 86 7 85
Quick-Sort(A, 0, 7)Quick-Sort(A, 2, 2), returnQuick-Sort(A, 4, 7) , partition
![Page 70: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/70.jpg)
70
4
5
6 7 87 866
2 1 3
Quick-Sort(A, 0, 7)Quick-Sort(A, 5, 7) , partition
![Page 71: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/71.jpg)
71
4
5
6
7 887
2 1 3
Quick-Sort(A, 0, 7)Quick-Sort(A, 6, 7) , partition
![Page 72: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/72.jpg)
72
4
5
6
7
2 1 3
Quick-Sort(A, 0, 7)Quick-Sort(A, 7, 7)
8
, return, base case
8
![Page 73: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/73.jpg)
73
4
5
6 87
2 1 3
Quick-Sort(A, 0, 7)Quick-Sort(A, 6, 7) , return
![Page 74: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/74.jpg)
74
4
5
2 1 3
Quick-Sort(A, 0, 7)Quick-Sort(A, 5, 7) , return
6 87
![Page 75: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/75.jpg)
75
42 1 3
Quick-Sort(A, 0, 7)Quick-Sort(A, 4, 7) , return
5 6 87
![Page 76: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/76.jpg)
76
42 1 3
Quick-Sort(A, 0, 7)Quick-Sort(A, 0, 7) , done!
5 6 87
![Page 77: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/77.jpg)
77
Quick-Sort: Best Case Even Partition
Total time: (nlogn)
cn
2 × cn/2 = cn
4 × c/4 = cn
n/3 × 3c = cn
log n levels
n
n/2 n/2
n/4
3 3 3
n/4n/4n/4
![Page 78: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/78.jpg)
78
cn
c(n-1)
3c
2c
n
n-1
n-2
3
2
c(n-2)
Happens only if input is sortd input is reversely sorted
Quick-Sort: Worst Case Unbalanced Partition
Total time: (n2)
![Page 79: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/79.jpg)
79
Quick-Sort: an Average Case Suppose the split is 1/10 : 9/10
Quick-Sort: an Average Case
cn
cn
cn
≤cn
n
0.1n 0.9n
0.01n 0.09n 0.09n
Total time: (nlogn)
0.81n
2
2
log10n
log10/9n
≤cn
![Page 80: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/80.jpg)
80
Quick-Sort Summary Time
Most of the work done in partitioning. Average case takes (n log(n)) time. Worst case takes (n2) time
Space Sorts in-place, i.e., does not require additional
space
![Page 81: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/81.jpg)
81
Summary Divide and Conquer
Merge-Sort Most of the work done in Merging (n log(n)) time (n) space
Quick-Sort Most of the work done in partitioning Average case takes (n log(n)) time Worst case takes (n2) time (1) space
![Page 82: Sorting Algorithms Merge Sort Quick Sort Hairong Zhao New Jersey Institute of Technology](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a4d1b7a7f8b9ab0599b8e60/html5/thumbnails/82.jpg)
82
Homework1. What is the running time of Merge-Sort if the
array is already sorted? What is the best case running time of Merge-Sort?
2. Demonstrate the working of Partition on sequence (13, 5, 14, 11, 16, 12, 1, 15). What is the value of i returned at the completion of Partition?