40 likes | 142 Vues
Order Notation Warmup. Analyzing Bubble Sort. Sort (a 1 ,…,a n ): for i := 1 to n-1 for j := 1 to n-i if a j >a j+1 then interchange a j ↔a j + 1 How many comparison steps as a function of n ?. Inner loop is executed n-1 times when i =1 n-2 times when i =2 …
E N D
Analyzing Bubble Sort Sort (a1,…,an): for i := 1 to n-1 for j := 1 to n-i if aj>aj+1then interchange aj↔aj+1 How many comparison steps as a function of n?
Inner loop is executed n-1 times when i=1 n-2 times when i=2 … 1 time when i=n-1 For a total of 1+2+3+…+(n-2)+(n-1) =((n-1)∙n)/2. The exact running time depends on details of the code (initializations, for example), the quality of the compiler, the speed of the computer, etc.
Let T(n) be the maximum running time of this program for any array of length n. (Small variations due to whether swaps actually occur) T(n) = a2n2 + a1n + a0 for some constants a0, a1, a2. But the last two terms become increasing inconsequential as n increases since a1n + a0 = o(a2n2). So the most useful thing to say is that T(n)=𝚯(n2) (why both upper and lower bound?)