Java program for bubble sort
In this post, you will learn how to write a bubble sort program using the Java programming language.
Bubble sort is a very simple sorting technique in which each element is compared with every other element in the list. This is also called sinking sort. It continuously compares the element with the adjacent item and swaps it if the element is in the wrong order. If the element at the lower index is greater than the element at the higher index, then the two elements are interchanged as the element is placed before the bigger one.
This process will continue working till the largest element moves to the highest index position.
Bubble Sort Example
Suppose we have the following array-
A[] = {10, 43, 23, 56, 16}
These are the bubble sorting techniques.
Pass 1
Compare A[0] and A[1], since A[0] < A[1] then no interchange.
Compare A[1] and A[2], since A[1] > A[2] then interchange.
Compare A[2] and A[3], since A[2] < A[3] then no interchange.
Compare A[3] and A[4], since A[3] > A[4] then interchange.
Pass 2
Compare A[0] and A[1], since A[0] < A[1] then no interchange.
Compare A[1] and A[2], since A[1] < A[2] then no interchange.
Compare A[2] and A[3], since A[2] > A[3] then interchange.
Compare A[3] and A[4], since A[3] < A[4] then no interchange.
Bubble Sorting Algorithm
STEP 1: Repeat Step 2 For 1=0 to N-1
STEP 2: Repeat for J = 0 to N - I
STEP 3: IF A[J] > A[J+1]
SWAP A[J] and A[J+1]
[END of INNER LOOP]
[END of OUTER LOOP]
STEP 4: EXIT
Complexity of Bubble sort
Suppose n is the number of element in an array.
f(n) = (n-1)+(n-2)+(n-3)+.....+3+2+1
f(n) = n(n-1)/2
f(n) = n2/2 + O(n)
= O(n2)
Bubble sort program in Java using for loop
Output of the above code:public class BubbleSortProgram { static void bubbleSort(int[] arr) { int len = arr.length; int temp = 0; for(int i=0; i < len; i++){ for(int j=1; j < (len-i); j++){ if(arr[j-1] > arr[j]){ //swapping elements temp = arr[j-1]; arr[j-1] = arr[j]; arr[j] = temp; } } } } public static void main(String[] args) { int arr[] ={8,33,41,23,9,6,89,53,16}; System.out.println("Original array:"); for(int i=0; i < arr.length; i++){ System.out.print(arr[i] + " "); } System.out.println(); bubbleSort(arr); System.out.println("Sorted array:"); for(int i=0; i < arr.length; i++){ System.out.print(arr[i] + " "); } } }
Original array:
8 33 41 23 9 6 89 53 16
Sorted array:
6 8 9 16 23 33 41 53 89
Bubble sort program in Java using while loop
import java.util.Arrays;
public class BubbleSortProgram {
public static void main(String args[]) {
String[] bubbleSort = {"chair", "table", "laptop", "bed", "fan"};
System.out.println("Before Sorting: " + Arrays.toString(bubbleSort));
bubbleSortFunc(bubbleSort);
System.out.println("After Sorting: " + Arrays.toString(bubbleSort));
}
public static void bubbleSortFunc(String[] str_names) {
boolean swapped = true;
int end = str_names.length - 2;
while (swapped) {
swapped = false;
for (int i = 0; i <= end; i++) {
if(str_names[i].compareTo(str_names[i + 1]) > 0) {
swap(str_names, i, i + 1);
swapped = true;
}
}
end--;
}
}
public static void swap(String[] str_names, int from, int to) {
String temp = str_names[from];
str_names[from] = str_names[to];
str_names[to] = temp;
}
}
Output of the above code:
Before Sorting: [chair, table, laptop, bed, fan]
After Sorting: [bed, chair, fan, laptop, table]
Related Articles
Sort array in ascending order JavaAutomorphic number in Java
Pascal triangle program in Java
Factorial using recursion in java
Java random number between 1 and 10
Palindrome program in Java
Floyd triangle in Java
Pyramid pattern programs in Java
Star pattern programs in Java
Number pattern programs in Java
Java program to find area of rectangle
Matrix multiplication in Java
Electricity bill program in Java
Java program to find area of triangle
Area of circle program in Java
Remove duplicate elements from array in Java
Capitalize first letter of each word Java
Convert binary to decimal in Java
Convert decimal to binary in Java
Convert decimal to octal in Java
Convert decimal to hexadecimal in Java
Simple interest program in Java