Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out...
-
Upload
lester-marshall -
Category
Documents
-
view
215 -
download
0
description
Transcript of Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out...
![Page 1: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/1.jpg)
Big ODavid Kauchak
cs302Spring 2012
![Page 2: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/2.jpg)
Administrative Assignment 1: how’d it go? Assignment 2: out soon… Lab code
![Page 3: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/3.jpg)
Asymptotic notation How do you answer the question: “what is the
running time of algorithm x?” We need a way to talk about the computational cost
of an algorithm that focuses on the essential parts and ignores irrelevant details
We’ve seen some of this already: linear n log n n2
![Page 4: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/4.jpg)
Asymptotic notation Precisely calculating the actual steps is tedious
and not generally useful
Different operations take different amounts of time. Even from run to run, things such as caching, etc. cause variations
Want to identify categories of algorithmic runtimes
![Page 5: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/5.jpg)
For example… f1(n) takes n2 steps f2(n) takes 2n + 100 steps f3(n) takes 3n+1 steps
Which algorithm is better? Is the difference between f2 and f3
important/significant?
![Page 6: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/6.jpg)
Runtime examples
![Page 7: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/7.jpg)
Big O: Upper bound O(g(n)) is the set of functions:
![Page 8: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/8.jpg)
Big O: Upper bound O(g(n)) is the set of functions:
We can bound the function f(n) above by some constant factor of g(n)
![Page 9: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/9.jpg)
Big O: Upper bound O(g(n)) is the set of functions:
We can bound the function f(n) above by some constant multiplied by g(n)
For some increasing range
![Page 10: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/10.jpg)
Big O: Upper bound O(g(n)) is the set of functions:
nxfnnxf
nxfnxf
nO
6)(405)(1002/1)(
3)(
)(
4
23
22
21
2
![Page 11: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/11.jpg)
Big O: Upper bound O(g(n)) is the set of functions:
Generally, we’re most interested in big O notation since it is an upper bound on the running time
![Page 12: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/12.jpg)
Omega: Lower bound Ω(g(n)) is the set of functions:
![Page 13: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/13.jpg)
Omega: Lower bound Ω(g(n)) is the set of functions:
We can bound the function f(n) below by some constant factor of g(n)
![Page 14: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/14.jpg)
Omega: Lower bound Ω(g(n)) is the set of functions:
34
23
22
21
2
6)(405)(1002/1)(
3)(
)(
nxfnnxf
nxfnxf
n
![Page 15: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/15.jpg)
Theta: Upper and lower bound Θ(g(n)) is the set of functions:
![Page 16: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/16.jpg)
Theta: Upper and lower bound Θ(g(n)) is the set of functions:
We can bound the function f(n) above and below by some constant factor of g(n) (though different constants)
![Page 17: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/17.jpg)
Theta: Upper and lower bound Θ(g(n)) is the set of functions:
Note: A function is theta bounded iff it is big O bounded and Omega bounded
![Page 18: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/18.jpg)
Theta: Upper and lower bound Θ(g(n)) is the set of functions:
nnnxfnnxf
nxfnxf
n
log3)(405)(1002/1)(
3)(
)(
24
23
22
21
2
![Page 19: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/19.jpg)
Visually
f(n)
![Page 20: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/20.jpg)
Visually: upper bound
n0
f(n)
![Page 21: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/21.jpg)
Visually: lower bound
n0
f(n)
![Page 22: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/22.jpg)
worst-case vs. best-case vs. average-case worst-case: what is the worst the running time of the
algorithm can be? best-case: what is the best the running time of the
algorithm can be? average-case: given random data, what is the
running time of the algorithm? Don’t confuse this with O, Ω and Θ. The cases
above are situations, asymptotic notation is about bounding particular situations
![Page 23: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/23.jpg)
Proving bounds: find constants that satisfy inequalities
Show that 5n2 – 15n + 100 is Θ(n2) Step 1: Prove O(n2) – Find constants c and n0
such that 5n2 – 15n + 100 ≤ cn2 for all n > n0
100155 22 nncn2/100/155 nnc
Let n0 =1 and c = 5 + 100 = 105.100/n2 only get smaller as n increases and we ignore -15/n since it only varies between -15 and 0
![Page 24: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/24.jpg)
Proving bounds Step 2: Prove Ω(n2) – Find constants c and n0
such that 5n2 – 15n + 100 ≥ cn2 for all n > n0
100155 22 nncn2/100/155 nnc
Let n0 =4 and c = 5 – 15/4 = 1.25 (or anything less than 1.25). We can ignore 100/n2 since it is always positive and 15/n is always decreasing.
![Page 25: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/25.jpg)
BoundsNo
How would we prove it?
![Page 26: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/26.jpg)
Disproving bounds
Assume it’s true. That means there exists some c and n0 such that
contradiction!
![Page 27: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/27.jpg)
Some rules of thumb Multiplicative constants can be omitted
14n2 becomes n2
7 log n become log n Lower order functions can be omitted
n + 5 becomes n n2 + n becomes n2
na dominates nb if a > b n2 dominates n, so n2+n becomes n2
n1.5 dominates n1.4
![Page 28: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/28.jpg)
Some rules of thumb an dominates bn if a > b
3n dominates 2n
Any exponential dominates any polynomial 3n dominates n5
2n dominates nc
Any polynomial dominates any logorithm n dominates log n or log log n n2 dominates n log n n1/2 dominates log n
Do not omit lower order terms of different variables (n2 + m) does not become n2
![Page 29: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/29.jpg)
Big On2 + n log n + 50
2n -15n2 + n3 log n
nlog n + n2 + 15n3
n5 - n! + nn
![Page 30: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/30.jpg)
Some examples O(1) – constant. Fixed amount of work,
regardless of the input size add two 32 bit numbers determine if a number is even or odd sum the first 20 elements of an array delete an element from a doubly linked list
O(log n) – logarithmic. At each iteration, discards some portion of the input (i.e. half) binary search
![Page 31: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/31.jpg)
Some examples O(n) – linear. Do a constant amount of work
on each element of the input find an item in a linked list determine the largest element in an array
O(n log n) log-linear. Divide and conquer algorithms with a linear amount of work to recombine Sort a list of number with MergeSort FFT
![Page 32: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/32.jpg)
Some examples O(n2) – quadratic. Double nested loops that
iterate over the data Insertion sort
O(2n) – exponential Enumerate all possible subsets Traveling salesman using dynamic programming
O(n!) Enumerate all permutations determinant of a matrix with expansion by minors
![Page 33: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/33.jpg)
Divide and Conquer Divide: Break the problem into smaller
subproblems Conquer: Solve the subproblems. Generally,
this involves waiting for the problem to be small enough that it is trivial to solve (i.e. 1 or 2 items)
Combine: Given the results of the solved subproblems, combine them to generate a solution for the complete problem
![Page 34: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/34.jpg)
Divide and Conquer: some thoughts Often, the sub-problem is the same as the original
problem
Dividing the problem in half frequently does the job
May have to get creative about how the data is split
Splitting tends to generate run times with log n in them
![Page 35: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/35.jpg)
Divide and Conquer: Sorting How should we split the data? What are the subproblems we need to solve?
How do we combine the results from these subproblems?
![Page 36: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/36.jpg)
MergeSort
![Page 37: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/37.jpg)
MergeSort: Merge Assuming L and R are sorted already, merge
the two to create a single sorted array
![Page 38: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/38.jpg)
MergeR: 2 4 6 7L: 1 3 5 8
![Page 39: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/39.jpg)
MergeR: 2 4 6 7L: 1 3 5 8
B:
![Page 40: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/40.jpg)
MergeR: 2 4 6 7L: 1 3 5 8
B:
![Page 41: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/41.jpg)
MergeR: 2 4 6 7L: 1 3 5 8
B:
![Page 42: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/42.jpg)
MergeR: 2 4 6 7L: 1 3 5 8
B: 1
![Page 43: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/43.jpg)
MergeR: 2 4 6 7L: 1 3 5 8
B: 1
![Page 44: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/44.jpg)
MergeR: 2 4 6 7L: 1 3 5 8
B: 1 2
![Page 45: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/45.jpg)
MergeR: 2 4 6 7L: 1 3 5 8
B: 1 2
![Page 46: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/46.jpg)
MergeR: 2 4 6 7L: 1 3 5 8
B: 1 2 3
![Page 47: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/47.jpg)
MergeR: 2 4 6 7L: 1 3 5 8
B: 1 2 3
![Page 48: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/48.jpg)
MergeR: 2 4 6 7L: 1 3 5 8
B: 1 2 3 4
![Page 49: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/49.jpg)
MergeR: 2 4 6 7L: 1 3 5 8
B: 1 2 3 4
![Page 50: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/50.jpg)
MergeR: 2 4 6 7L: 1 3 5 8
B: 1 2 3 4 5
![Page 51: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/51.jpg)
MergeR: 2 4 6 7L: 1 3 5 8
B: 1 2 3 4 5
![Page 52: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/52.jpg)
MergeR: 2 4 6 7L: 1 3 5 8
B: 1 2 3 4 5 6
![Page 53: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/53.jpg)
MergeR: 2 4 6 7L: 1 3 5 8
B: 1 2 3 4 5 6
![Page 54: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/54.jpg)
MergeR: 2 4 6 7L: 1 3 5 8
B: 1 2 3 4 5 6 7
![Page 55: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/55.jpg)
MergeR: 2 4 6 7L: 1 3 5 8
B: 1 2 3 4 5 6 7
![Page 56: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/56.jpg)
MergeR: 2 4 6 7L: 1 3 5 8
B: 1 2 3 4 5 6 7 8
![Page 57: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/57.jpg)
Merge Does the algorithm terminate?
![Page 58: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/58.jpg)
Merge
Is it correct? Loop invariant: At the end of each iteration of the for loop
of lines 4-10 the subarray B[1..k] contains the smallest k elements from L and R in sorted order.
![Page 59: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/59.jpg)
Merge
Is it correct? Loop invariant: At the beginning of the for loop of lines 4-
10 the first k-1 elements of B are the smallest k-1 elements from L and R in sorted order.
![Page 60: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/60.jpg)
Merge
Running time?
![Page 61: Big O David Kauchak cs302 Spring 2012. Administrative Assignment 1: howd it go? Assignment 2: out soon Lab code.](https://reader035.fdocuments.in/reader035/viewer/2022070610/5a4d1ba17f8b9ab0599c7aad/html5/thumbnails/61.jpg)
Merge
Running time? Θ(n) - linear