40 likes | 152 Vues
This document explores the Bubble Sort algorithm, focusing on its comparative analysis and running time. It breaks down the inner loop execution, illustrating how the number of comparison steps varies with array length ( n ) and sums to ( frac{(n-1) cdot n}{2} ). The relationship between maximum running time ( T(n) ) and execution steps is examined, revealing that ( T(n) = a_2n^2 + a_1n + a_0 ) can be simplified for large ( n ) to ( T(n) = Θ(n^2) ). Additional considerations regarding the impact of initializations, compiler quality, and hardware speed are identified.
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?)