introduction: analysis of algorithms, insertion sort, …sourav/lecture-01.pdfinsertion sort...
TRANSCRIPT
![Page 1: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/1.jpg)
Introduction: Analysis of Algorithms, Insertion Sort, Merge Sort
Lecture 1
![Page 2: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/2.jpg)
L1.2
Analysis of algorithms
The theoretical study of computer-program
performance and resource usage.
What’s more important than performance?
• modularity
• correctness
• maintainability
• functionality
• robustness
• user-friendliness
• programmer time
• simplicity
• extensibility
• reliability
![Page 3: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/3.jpg)
L1.3
Why study algorithms and
performance?
• Algorithms help us to understand scalability.
• Performance often draws the line between whatis feasible and what is impossible.
• Algorithmic mathematics provides a languagefor talking about program behavior.
• The lessons of program performance generalizeto other computing resources.
• Speed is fun!
![Page 4: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/4.jpg)
L1.4
The problem of sorting
Input: sequence a1, a2, …, an of numbers.
Example:
Input: 8 2 4 9 3 6
Output: 2 3 4 6 8 9
Output: permutation a'1, a'2, …, a'n such
that a'1 a'2 … a'n .
![Page 5: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/5.jpg)
L1.5
Insertion Sort
INSERTION-SORT (A, n) ⊳ A[1 . . n]
for j ← 1 to n
do key ← A[ j]
i ← j – 1
while i > 0 and A[i] > key
do A[i+1] ← A[i]
i ← i – 1
A[i+1] = key
“pseudocode”
i j
key sorted
![Page 6: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/6.jpg)
L1.6
Example of Insertion Sort
8 2 4 9 3 6
![Page 7: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/7.jpg)
L1.7
Example of Insertion Sort
8 2 4 9 3 6
![Page 8: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/8.jpg)
L1.8
Example of Insertion Sort
8 2 4 9 3 6
2 8 4 9 3 6
![Page 9: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/9.jpg)
L1.9
Example of Insertion Sort
8 2 4 9 3 6
2 8 4 9 3 6
![Page 10: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/10.jpg)
L1.10
Example of Insertion Sort
8 2 4 9 3 6
2 8 4 9 3 6
2 4 8 9 3 6
![Page 11: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/11.jpg)
L1.11
Example of Insertion Sort
8 2 4 9 3 6
2 8 4 9 3 6
2 4 8 9 3 6
![Page 12: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/12.jpg)
L1.12
Example of Insertion Sort
8 2 4 9 3 6
2 8 4 9 3 6
2 4 8 9 3 6
2 4 8 9 3 6
![Page 13: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/13.jpg)
L1.13
Example of Insertion Sort
8 2 4 9 3 6
2 8 4 9 3 6
2 4 8 9 3 6
2 4 8 9 3 6
![Page 14: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/14.jpg)
L1.14
Example of Insertion Sort
8 2 4 9 3 6
2 8 4 9 3 6
2 4 8 9 3 6
2 4 8 9 3 6
2 3 4 8 9 6
![Page 15: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/15.jpg)
L1.15
Example of Insertion Sort
8 2 4 9 3 6
2 8 4 9 3 6
2 4 8 9 3 6
2 4 8 9 3 6
2 3 4 8 9 6
![Page 16: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/16.jpg)
L1.16
Example of Insertion Sort
8 2 4 9 3 6
2 8 4 9 3 6
2 4 8 9 3 6
2 4 8 9 3 6
2 3 4 8 9 6
2 3 4 6 8 9 done
![Page 17: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/17.jpg)
L1.17
Running time
• The running time depends on the input: analready sorted sequence is easier to sort.
• Parameterize the running time by the size ofthe input, since short sequences are easier tosort than long ones.
• Generally, we seek upper bounds on therunning time, because everybody likes aguarantee.
![Page 18: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/18.jpg)
L1.18
Kinds of analyses
Worst-case: (usually)
• T(n) = maximum time of algorithmon any input of size n.
Average-case: (sometimes)
• T(n) = expected time of algorithmon any input of size n.
Best-case: (bogus)
• Cheat with a slow algorithm thatworks fast on some input.
![Page 19: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/19.jpg)
L1.19
Machine-independent time
What is insertion sort’s worst-case time?
• It depends on the speed of our computer:
• relative speed (on the same machine),
• absolute speed (on different machines).
BIG IDEA:
• Ignore machine-dependent constants.
• Look at growth of T(n) as n → ∞ .
“Asymptotic Analysis”
![Page 20: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/20.jpg)
L1.20
Q-notation
• Drop low-order terms; ignore leading constants.
• Example: 3n3 + 90n2 – 5n + 6046 = Q(n3)
Math: Q(g(n)) = { f (n) : there exist positive constants c1, c2, and
n0 such that 0 c1 g(n) f (n) c2 g(n)
for all n n0 }
Engineering:
![Page 21: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/21.jpg)
L1.21
Asymptotic performance
n
T(n)
n0
• We shouldn’t ignoreasymptotically sloweralgorithms, however.
• Real-world designsituations often call for acareful balancing ofengineering objectives.
• Asymptotic analysis is auseful tool to help tostructure our thinking.
When n gets large enough, a Q(n2) algorithm
always beats a Q(n3) algorithm.
![Page 22: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/22.jpg)
L1.22
Insertion sort analysis
Worst case: Input reverse sorted.
QQn
j
njnT2
2)()(
Average case: All permutations equally likely.
QQn
j
njnT2
2)2/()(
Is insertion sort a fast sorting algorithm?
• Moderately so, for small n.
• Not at all, for large n.
[arithmetic series]
![Page 23: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/23.jpg)
L1.23
Merge sort
MERGE-SORT A[1 . . n]
To sort n numbers:
1. If n = 1, done.
2. Recursively sort A[ 1 . . n/2 ] andA[ n/2+1 . . n ] .
3. “Merge” the 2 sorted lists.
Key subroutine: MERGE
![Page 24: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/24.jpg)
L1.24
Merging two sorted arrays
20
13
7
2
12
11
9
1
![Page 25: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/25.jpg)
L1.25
Merging two sorted arrays
20
13
7
2
12
11
9
1
1
![Page 26: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/26.jpg)
L1.26
Merging two sorted arrays
20
13
7
2
12
11
9
1
1
20
13
7
2
12
11
9
![Page 27: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/27.jpg)
L1.27
Merging two sorted arrays
20
13
7
2
12
11
9
1
1
20
13
7
2
12
11
9
2
![Page 28: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/28.jpg)
L1.28
Merging two sorted arrays
20
13
7
2
12
11
9
1
1
20
13
7
2
12
11
9
2
20
13
7
12
11
9
![Page 29: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/29.jpg)
L1.29
Merging two sorted arrays
20
13
7
2
12
11
9
1
1
20
13
7
2
12
11
9
2
20
13
7
12
11
9
7
![Page 30: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/30.jpg)
L1.30
Merging two sorted arrays
20
13
7
2
12
11
9
1
1
20
13
7
2
12
11
9
2
20
13
7
12
11
9
7
20
13
12
11
9
![Page 31: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/31.jpg)
L1.31
Merging two sorted arrays
20
13
7
2
12
11
9
1
1
20
13
7
2
12
11
9
2
20
13
7
12
11
9
7
20
13
12
11
9
9
![Page 32: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/32.jpg)
L1.32
Merging two sorted arrays
20
13
7
2
12
11
9
1
1
20
13
7
2
12
11
9
2
20
13
7
12
11
9
7
20
13
12
11
9
9
20
13
12
11
![Page 33: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/33.jpg)
L1.33
Merging two sorted arrays
20
13
7
2
12
11
9
1
1
20
13
7
2
12
11
9
2
20
13
7
12
11
9
7
20
13
12
11
9
9
20
13
12
11
11
![Page 34: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/34.jpg)
L1.34
Merging two sorted arrays
20
13
7
2
12
11
9
1
1
20
13
7
2
12
11
9
2
20
13
7
12
11
9
7
20
13
12
11
9
9
20
13
12
11
11
20
13
12
![Page 35: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/35.jpg)
L1.35
Merging two sorted arrays
20
13
7
2
12
11
9
1
1
20
13
7
2
12
11
9
2
20
13
7
12
11
9
7
20
13
12
11
9
9
20
13
12
11
11
20
13
12
12
![Page 36: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/36.jpg)
L1.36
Merging two sorted arrays
20
13
7
2
12
11
9
1
1
20
13
7
2
12
11
9
2
20
13
7
12
11
9
7
20
13
12
11
9
9
20
13
12
11
11
20
13
12
12
Time = Q(n) to merge a total
of n elements (linear time).
![Page 37: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/37.jpg)
L1.37
Analyzing merge sort
MERGE-SORT (A, n) ⊳ A[1 . . n]
To sort n numbers:
1. If n = 1, done.
2. Recursively sort A[ 1 . . n/2 ]and A[ n/2+1 . . n ] .
3. “Merge” the 2 sorted lists
T(n)
Q(1)
2T(n/2)
Q(n) Abuse
Sloppiness: Should be T( n/2 ) + T( n/2 ) ,
but it turns out not to matter asymptotically.
![Page 38: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/38.jpg)
L1.38
Recurrence for merge sort
T(n) = Q(1) if n = 1;
2T(n/2) + Q(n) if n > 1.
• We shall usually omit stating the basecase when T(n) = Q(1) for sufficientlysmall n (and when it has no effect on thesolution to the recurrence.
• Lecture 2 provide several ways to find agood upper bound on T(n).
![Page 39: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/39.jpg)
L1.39
Recursion tree
Solve T(n) = 2T(n/2) + cn, where c > 0 is constant.
![Page 40: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/40.jpg)
L1.40
Recursion tree
Solve T(n) = 2T(n/2) + cn, where c > 0 is constant.
T(n)
![Page 41: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/41.jpg)
L1.41
Recursion tree
Solve T(n) = 2T(n/2) + cn, where c > 0 is constant.
T(n/2) T(n/2)
cn
![Page 42: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/42.jpg)
L1.42
Recursion tree
Solve T(n) = 2T(n/2) + cn, where c > 0 is constant.
cn
T(n/4) T(n/4) T(n/4) T(n/4)
cn/2 cn/2
![Page 43: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/43.jpg)
L1.43
Recursion tree
Solve T(n) = 2T(n/2) + cn, where c > 0 is constant.
cn
cn/4 cn/4 cn/4 cn/4
cn/2 cn/2
Q(1)
![Page 44: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/44.jpg)
L1.44
Recursion tree
Solve T(n) = 2T(n/2) + cn, where c > 0 is constant.
cn
cn/4 cn/4 cn/4 cn/4
cn/2 cn/2
Q(1)
h = lg n
![Page 45: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/45.jpg)
L1.45
Recursion tree
Solve T(n) = 2T(n/2) + cn, where c > 0 is constant.
cn
cn/4 cn/4 cn/4 cn/4
cn/2 cn/2
Q(1)
h = lg n
cn
![Page 46: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/46.jpg)
L1.46
Recursion tree
Solve T(n) = 2T(n/2) + cn, where c > 0 is constant.
cn
cn/4 cn/4 cn/4 cn/4
cn/2 cn/2
Q(1)
h = lg n
cn
cn
![Page 47: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/47.jpg)
L1.47
Recursion tree
Solve T(n) = 2T(n/2) + cn, where c > 0 is constant.
cn
cn/4 cn/4 cn/4 cn/4
cn/2 cn/2
Q(1)
h = lg n
cn
cn
cn
…
![Page 48: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/48.jpg)
L1.48
Recursion tree
Solve T(n) = 2T(n/2) + cn, where c > 0 is constant.
cn
cn/4 cn/4 cn/4 cn/4
cn/2 cn/2
Q(1)
h = lg n
cn
cn
cn
#leaves = n Q(n)
…
![Page 49: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/49.jpg)
L1.49
Recursion tree
Solve T(n) = 2T(n/2) + cn, where c > 0 is constant.
cn
cn/4 cn/4 cn/4 cn/4
cn/2 cn/2
Q(1)
h = lg n
cn
cn
cn
#leaves = n Q(n)
TotalQ(n lg n)
…
![Page 50: Introduction: Analysis of Algorithms, Insertion Sort, …sourav/Lecture-01.pdfInsertion sort analysis Worst case: Input reverse sorted. 44 n j T n j n 2 ( ) ( ) 2 Average case: All](https://reader030.vdocuments.us/reader030/viewer/2022040308/5ede3b76ad6a402d66698c46/html5/thumbnails/50.jpg)
L1.50
Conclusions
• Q(n lg n) grows more slowly than Q(n2).
• Therefore, merge sort asymptoticallybeats insertion sort in the worst case.
• In practice, merge sort beats insertionsort for n > 30 or so.
• Go test it out for yourself!