Presentation is loading. Please wait.

Presentation is loading. Please wait.

Analysis of Bubble Sort and Loop Invariant

Similar presentations


Presentation on theme: "Analysis of Bubble Sort and Loop Invariant"— Presentation transcript:

1 Analysis of Bubble Sort and Loop Invariant

2 N-1 Iteration 77 12 35 42 5 101 N - 1 5 42 12 35 77 101 42 5 35 12 77 101 42 35 5 12 77 101 42 35 12 5 77 101

3 Outer loop Inner loop procedure Bubblesort(A isoftype in/out Arr_Type)
to_do, index isoftype Num to_do <- N – 1 loop exitif(to_do = 0) index <- 1 exitif(index > to_do) if(A[index] > A[index + 1]) then Swap(A[index], A[index + 1]) endif index <- index + 1 endloop to_do <- to_do - 1 endprocedure // Bubblesort To do N-1 iterations To bubble a value Inner loop Outer loop

4 Bubble Sort Time Complexity
Best-Case Time Complexity The scenario under which the algorithm will do the least amount of work (finish the fastest) Worst-Case Time Complexity The scenario under which the algorithm will do the largest amount of work (finish the slowest)

5 Bubble Sort Time Complexity
Called Linear Time O(N) Order-of-N Best-Case Time Complexity Array is already sorted Need 1 iteration with (N-1) comparisons Worst-Case Time Complexity Need N-1 iterations (N-1) + (N-2) + (N-3) + …. + (1) = (N-1)* N / 2 Called Quadratic Time O(N2) Order-of-N-square

6 Loop Invariant It is a condition or property that is guaranteed to be correct with each iteration in the loop Usually used to prove the correctness of the algorithm

7 Loop Invariant for Bubble Sort
By the end of iteration i  the right-most i items (largest) are sorted and in place

8 N-1 Iterations 77 12 35 42 5 101 N - 1 1st 5 42 12 35 77 101 2nd 42 5 35 12 77 101 3rd 42 35 5 12 77 101 4th 42 35 12 5 77 101 5th

9 Correctness of Bubble Sort (using Loop Invariant)
Bubble sort has N-1 Iterations Invariant: By the end of iteration i  the right-most i items (largest) are sorted and in place Then: After the N-1 iterations  The right-most N-1 items are sorted This implies that all the N items are sorted

10 Correctness of Bubble Sort (using Loop Invariant)
What if we stop early (after iteration K) Remember the Boolean “did_swap” flag From the invariant  the right-most K items are sorted A[N-(K-1)] < A[N-2] < A[N-1] < A[N] Since we stopped early, then no swaps are done, Then A[1] < A[2] < ….. < A[N-K] By merging these two, then the entire array is sorted


Download ppt "Analysis of Bubble Sort and Loop Invariant"

Similar presentations


Ads by Google