How Bubble Sort Works |
Bubble Sort OR Sinking Sort
Bubble sort is a simple sorting algorithm. In this algorithm same process happens until the considering list become a sorted list. Throughout the sorting process compares each pair of adjacent items and adjust them one pair at a time.
Lets consider a list containing numbers to be sort
2,4,1,3,5,6
1. lets take first two numbers 2 & 4
2 < 4
2. because of that we don't have to adjust first pair but,
4 > 1
3. because of that we have to adjust 4 & 1
new list : 2,1,4,3,5,6
4 > 3
new list : 2,1,3,4,5,6
4. like this continue until the lat pair
2,1,3,4,5,6
5. after comparing last pair start same process from the beginning of the new list
2 > 1
new list : 1,2,3,4,5,6
6. after this step list becomes sorted.
Pseudo Code Implementation
begin Bubblesort(list)
temp == 0
for all
if list[i] > list[i+1]
temp == list [i+1]
list[i+1] == list[i]
list[i] = temp
end if
end for
return list
end Bubblesort
Python Implementation
def bubbleSort(alist):
for passnum in range(len(alist)-1,0,-1):
for i in range(passnum):
if alist[i]>alist[i+1]:
temp = alist[i]
alist[i] = alist[i+1]
alist[i+1] = temp
Implementation Using C
#include <stdio.h>
void bubble_sort(long [ ], long);
int main()
{
long array[100], n, c, d, swap;
printf("Enter number of elements\n");
scanf("%ld", &n);
printf("Enter %ld integers\n", n);
for (c = 0; c < n; c++)
scanf("%ld", &array[c]);
bubble_sort(array, n);
printf("Sorted list in ascending order:\n");
for ( c = 0 ; c < n ; c++ )
printf("%ld\n", array[c]);
return 0;
}
void bubble_sort(long list[], long n)
{
long c, d, t;
for (c = 0 ; c < ( n - 1 ); c++)
{
for (d = 0 ; d < n - c - 1; d++)
{
if (list[d] > list[d+1])
{
/* Swapping */
t = list[d];
list[d] = list[d+1];
list[d+1] = t;
}
}
}
}
Time Complexity
- worst case: O( n2)
- best case : O( n)
0 Comments
Thanks for the feedback