one main advantage of bubble sort as compared to others
1. Also See more posts : www.comsciguide.blogspot.com
BUBBLE SORT :
Bubble sort is a simple sorting algorithm also called Sinking
algorithm which just goes through a set of data ( list of numbers or characters)
and compares each member with its right neighbour . The pass through the list
is repeated until no more swaps are needed , which indicates that the list is
sorted . Although the algorithm is simple , It is too slow and impractical for a
large set of data.
PSEUDOCODE :
bubble(A,n)
while n>0 // n is the no of elements
k=0
for i=1 to n-1
if (A[i-1] > A[i])
swap A[i-1],A[i]
k=i
n=k;
WORKING :
The bubble sort working with an example :
A[] = {9,3,6,1,8,4,2}
The length of the array is 7 i.e. let n=7.
9 3 6 1 8 4 2
2. Also See more posts : www.comsciguide.blogspot.com
For 1st
iteration :
9 3 6 1 8 4 2
3 9 6 1 8 4 2
3 6 9 1 8 4 2
3 6 1 9 8 4 2
3 6 1 8 9 4 2
3 6 1 8 4 9 2
3 6 1 8 4 2 9
After 1st
iteration we will get a largest element (9) at the last index
of the array . So for the 2nd
iteration we need not to include it , because as in the
sorted list , the last element will be the largest one.
For 2nd
iteration :
3 6 1 8 4 2
3 6 1 8 4 2
3 1 6 8 4 2
3. Also See more posts : www.comsciguide.blogspot.com
3 1 6 8 4 2
3 1 6 4 8 2
3 1 6 4 2 8
Here u can observe the second largest element (8) in the array is in it's
place (at n-2 index).
For 3rd
iteration :
3 1 6 4 2
1 3 6 4 2
1 3 6 4 2
1 3 4 6 2
1 3 4 2 6
For 4th
iteration :
1 3 4 2
1 3 4 2
4. Also See more posts : www.comsciguide.blogspot.com
1 3 4 2
1 3 2 4
For 5th
iteration
1 3 2
1 3 2
1 2 3
For 6th
iteration :
1 2
As here , there is no swaps , IF condition won't execute . So n=k
i.e.(n=1) and the program will stop. Finally the sorted array is
1 2 3 4 6 8 9
PERFORMANCE :
Bubble sort has worst-case and average complexity both О(n2),
where n is the number of items being sorted. There exist many sorting
algorithms with substantially better worst-case or average complexity of
O(nlogn) . Therefore, bubble sort is not a practical sorting algorithm when n is
5. Also See more posts : www.comsciguide.blogspot.com
large.
The positions of the elements in bubble sort will play a large part in
determining its performance . Large elements at the beginning of the list do not
pose a problem , as they are quickly swapped . Small elements towards the end
however , move to the beginning extremely slowly . This has led to these types
of elements being named rabbits and turtles respectively .
It has a special feature , that the largest element( at last index ) gets
sorted first , with smaller elements taking longer to move to their correct
positions.
The only significant advantage that bubble sort has over most other
implementations, even quicksort, but not insertion sort, is that the ability to
detect that the list is sorted in efficient way .When the list is already sorted
(best-case), the complexity of bubble sort is only O(n). By contrast, most other
algorithms, even those with better average-case complexity, perform their
entire sorting process on the set and thus are more complex.
ANALYSIS :
U will be knowing that we do sort for a set of numbers.
Suppose if u have given array of elements which is already sorted and
one element is added to this..U will be having doubt where we have to
add this element(at the begining or ending of array)..What is that
complexity for this sorting, if we add new element at the last..?
Take a look with an example :
6. Also See more posts : www.comsciguide.blogspot.com
Let's take this array which is already sorted.
1 2 3 4 6 8 9
Consider the case of adding the new number (assume 5) at the
begining of the array .
The new array becomes
5 1 2 3 4 6 8 9
For 1st
iteration :
5 1 2 3 4 6 8 9
1 5 2 3 4 6 8 9
1 2 5 3 4 6 8 9
1 2 3 5 4 6 8 9
1 2 3 4 5 6 8 9
1 2 3 4 5 6 8 9
1 2 3 4 5 6 8 9
7. Also See more posts : www.comsciguide.blogspot.com
1 2 3 4 5 6 8 9
FOR 2ND ITERATION :
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
As for 2nd
iteration , no swaping occurs i.e. k=n=1. So there is no chance
of 3rd
iteration and the program exits.
Now consider the case of adding the new number (assume 5 ) at the
begining of the array .
The new array becomes
1 2 3 4 6 8 9 5
For 1st
iteration :
1 2 3 4 6 8 9 5
1 2 3 4 6 8 9 5
10. Also See more posts : www.comsciguide.blogspot.com
1 2 3 4 5 6 8 9
1 2 3 4 5 6 8 9
1 2 3 4 5 6 8 9
1 2 3 4 5 6 8 9
1 2 3 4 5 6 8 9
1 2 3 4 5 6 8 9
1 2 3 4 5 6 8 9
1 2 3 4 5 6 8 9
As for 4th
iteration , no swaping occurs i.e. k=n=1. So there no
chance of 5th
iteration and the program exits.
From the analysis , we observe that by adding an element at the
front of index , the cost of running time is less as compared to the cost of
running time for the case of adding element at the last.
11. Also See more posts : www.comsciguide.blogspot.com
IN PRACTICE :
Bubble sort is one of the simplest sorting algorithm to implement
and easy to understand . Due to its simplicity, bubble sort is often used to
introduce the concept of an algorithm, or a sorting algorithm, to introductory
students.
But due its O(n2) complexity , It will not be efficient for the case of
large lists .Its O(n2) complexity means that its efficiency decreases dramatically
on lists of large number of elements . Even among simple O(n2) sorting
algorithms like insertion sort are usually considerably more efficient.
Also see more posts :
1. Programs those work in C but not in C++
2. Difference between malloc(),calloc(),realloc()
3. Dynamic memory allocation (Stack vs Heap)
4. 3 ways to solve recurrence relations