In: Computer Science
Sorting algorithms are one kind of algorithm whose performance may depend upon the data. Choose one of the sorting algorithms or any other algorithm and explain whether the there are any differences in the best, average and worst cases. If there are no differences, explain why not. If there are differences, describe the data in the different cases and explain how the performance differs in each case.
Please let me know if anything is required
Bubble Sort is the simplest sorting algorithm that works by repeatedly swapping the adjacent elements if they are in wrong order.
Example: 5 1 4 2 8
First Pass:
( 5 1 4 2 8 ) –> (
1 5 4 2 8 ), Here, algorithm
compares the first two elements, and swaps since 5 > 1.
( 1 5 4 2 8 ) –> ( 1
4 5 2 8 ), Swap since 5 >
4
( 1 4 5 2 8 ) –> ( 1 4
2 5 8 ), Swap since 5 >
2
( 1 4 2 5 8 ) –> ( 1 4 2
5 8 ), Now, since these elements
are already in order (8 > 5), algorithm does not swap them.
Second Pass:
( 1 4 2 5 8 ) –> (
1 4 2 5 8 )
( 1 4 2 5 8 ) –> ( 1
2 4 5 8 ), Swap since 4 >
2
( 1 2 4 5 8 ) –> ( 1 2
4 5 8 )
( 1 2 4 5 8 ) –> ( 1 2 4
5 8 )
Now, the array is already sorted, but our algorithm does not know
if it is completed. The algorithm needs one whole
pass without any swap to know it is sorted.
Third Pass:
( 1 2 4 5 8 ) –> (
1 2 4 5 8 )
( 1 2 4 5 8 ) –> ( 1
2 4 5 8 )
( 1 2 4 5 8 ) –> ( 1 2
4 5 8 )
( 1 2 4 5 8 ) –> ( 1 2 4
5 8 )
Worst Time Complexity: O(n*n). Worst case occurs when array is sorted in reverse order.
Average Case Time Complexity : O(n*n). Average Case occurs when array is not sorted.
Best Case Time Complexity: O(n). Best case occurs when array is already sorted.