ArtsAutosBooksBusinessEducationEntertainmentFamilyFashionFoodGamesGenderHealthHolidaysHomeHubPagesPersonal FinancePetsPoliticsReligionSportsTechnologyTravel

How to sort an array using Bubble sort algorithm in Java ?.

Updated on September 17, 2014

Introduction -

In this tutorial, you will learn how to sort an array using Bubble sort algorithm in Java. Sorting is a process by which collection of elements are arranged in a certain order, i.e. either in ascending or descending order. There are many algorithms which can sort elements. Bubble sort technique is one such way to sort. It is simplest algorithm which sorts an array by iterating from first element to last. On iterating from first to last element it compares values of successive elements and swap them either in ascending or descending order. It is given name as Bubble sort because using this sorting algorithm smaller elements "bubble" to the top of array, while larger elements stay at bottom. In this tutorial, you will learn how to code Bubble sort algorithm in Java through a complete video tutorial and highly commented code.

Video tutorial - Bubble Sort in Java

Bubble sort code - Eclipse snapshot

Bubble Sort algorithm in Java
Bubble Sort algorithm in Java

Source code - Bubble sort in Java.

// Create a Java class.
public class BubbleSort {

	// Create a static method taking in a unsorted array.
	public static void bubbleSort(int[ ] array) {
		
		// Create a boolean variable to test whether next pass
		// is required or not.
		boolean nextPass = true;

		// Create a for loop having value of integer m as 1 in the
		// initialization step. The loop will traverse till boolean 
		// condition is true. Here on each loop it check whether m 
		// is less than length of array and nextPass value is true or not. At last there
		// is an incremental step which increments value of m by one.
		for (int m = 1; m < array.length && nextPass; m++) {

			// Assign a value false to nextPass variable.
			nextPass = false;

			// Create a inner for loop having value of integer i as 0 in the
			// initialization step. The loop will traverse till boolean condition
			// is true. Here on each loop it check whether i is less than length 
			// of array minus the value of m. At last there
			// is an incremental step which increments value of i by one.  
			for (int i = 0; i < array.length - m; i++) {

				// In each outer loop for inner for loop check is done 
				// whether element at i position is greater than element at
				// i + 1 position. If value of element at i position is greater than 
				// value of element at i + 1 position. Than we need to swap those
				// two values in array. With each completion of outer for loop loop
				// element with larger value sinks at last. 
				if (array[i] > array[i + 1]) {

					// Creata a temp variable which holds value of element at i 
					// position. It temporarily hold value of i element of array.
					int temp = array[i];

					// Assign the value of  i + 1 element to i element. 
					array[i] = array[i + 1];

					// Assign value of temp variable to i + 1 element. After these three steps
					// element at i position will have value  of  element at i + 1 position and 
					// i + 1 element will have value of i element.
					array[i + 1] = temp;

					// Since, swapping of value is been done in the pass, hence there has to be
					// next pass. If above if check came out to be false for  iteration of 
					// outer for loop than it confirms that array is already sorted. 
					nextPass = true;
				}
			}
		}
	}

Steps to implement - Bubble sort in Java.

Step 1 - Create a Java class.

Step 2 - Create a static method taking in a unsorted array. Here, in our case method name is bubbleSort.

Step 3 - Create a boolean variable to test whether next pass is required or not.

Step 4 - Create a for loop having value of integer m as 1 in the initialization step. The loop will traverse till boolean condition is true. Here, on each loop it check whether value of m is less than length of array and nextPass value is true or not. At last there is an incremental step which increments value of m by one.

Step 5 - Assign a value false to nextPass variable.

Step 6 - Create a inner for loop having value of integer i as 0 in the initialization step. The loop will traverse till boolean condition is true. Here on each loop it check whether value of i is less than length of array minus the value of m. At last there is an incremental step which increments value of i by one.

Step 7 - In each outer loop for inner for loop check is done whether element at i position is greater than element at i + 1 position. If value of element at i position is greater than value of element at i + 1 position. Than we need to swap those two values in array. With each completion of outer for loop element with larger value sinks at last.

Step 8 - Create a a temp variable which holds value of element at i position. It temporarily hold value of i element of array.

Step 9 - Assign the value of i + 1 element to i element.

Step 10 - Assign value of temp variable to i + 1 element. After these three steps element at i position will have value of element at i + 1 position and i + 1 element will have value of i element.

Step 11 - Since, swapping of value is been done in the pass, hence there has to be next pass. If above, if check came out to be false for iteration of outer for loop than it confirms that array is already sorted.

Bubble sort test code - Eclipse snapshot

Bubble sort test code in Java.
Bubble sort test code in Java.

Video tutorial to demonstrate how swapping of two numbers is done in Java.

Bubble sort test code

// Create a main method to test Bubble sort algorithm.
	public static void main(String[ ] args) {

		// Create an unsorted array having few elements as shown below.
		int[ ] array = {3, 1, 6, 7, 0, 3, 14, 12, -15};

		// Print unsorted array on Java console with help of for loop.
		System.out.println("Array before sorting - ");
		for (int i = 0; i < array.length; i++) {
			System.out.print(array[i] + " ");
		}
		// Pass the unsorted array to bubbleSort method to sort in 
		// ascending order.
		bubbleSort(array);

		System.out.println();

		// After bubbleSort method execution, print sorted array on Java
		// console with help of for loop.
		System.out.println("Array after sorting - ");
		for (int i = 0; i < array.length; i++) {
			System.out.print(array[i] + " ");
		}
	}

Steps to implement - Bubble sort test code.

Step 1 - Create a main method to test Bubble sort algorithm.

Step 2 - Create an unsorted array having few elements as shown in above code.

Step 3 - Print unsorted array on Java console with help of for loop.

Step 4 - Pass the unsorted array to bubbleSort method to sort array in ascending order.

Step 5 - After bubbleSort method execution, print sorted array on Java console with help of for loop.

Output of the program - Eclipse snapshot

Bubble sort algorithm output
Bubble sort algorithm output

Output of the program - Explanation

In order to test bubble sort algorithm, we run above main method. The main method creates first an unsorted array. Using for loop it displays unsorted array on Java console as , 3, 1, 6, 7, 0, 3, 14, 12, -15. It than passes unsorted array to bubbleSort method to sort its elements in ascending order. After bubbleSort method ends, main method proceeds further and prints sorted array on Java console as, -15, 0, 1, 3, 3, 6, 7, 12, 14. Thus, it sorts array elements in ascending order based on Bubble sort algorithm.

Comments

    0 of 8192 characters used
    Post Comment

    No comments yet.

    Click to Rate This Article