0% found this document useful (0 votes)
53 views

Bubble Sort: Filter - None Edit Play - Arrow Brightness - 4

Bubble Sort is the simplest sorting algorithm that works by repeatedly swapping adjacent elements that are out of order. It makes multiple passes through the array, and on each pass compares adjacent elements and swaps them if they are in the wrong order. The algorithm is complete once a full pass is made without any swaps, indicating the array is fully sorted. An optimized version stops the inner swap loop early if no swaps occurred, avoiding unnecessary comparisons.

Uploaded by

Abdul Mateen
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
53 views

Bubble Sort: Filter - None Edit Play - Arrow Brightness - 4

Bubble Sort is the simplest sorting algorithm that works by repeatedly swapping adjacent elements that are out of order. It makes multiple passes through the array, and on each pass compares adjacent elements and swaps them if they are in the wrong order. The algorithm is complete once a full pass is made without any swaps, indicating the array is fully sorted. An optimized version stops the inner swap loop early if no swaps occurred, avoiding unnecessary comparisons.

Uploaded by

Abdul Mateen
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5

Bubble Sort

Bubble Sort is the simplest sorting algorithm that works by repeatedly swapping the
adjacent elements if they are in wrong order.
Example:
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 )

Recommended: Please solve it on “PRACTICE ” first, before moving on


to the solution.
Following is the implementations of Bubble Sort.
 C/C++
 Java
 Python
 C#
 PHP
filter_none
edit
play_arrow
brightness_4
// Java program for implementation of Bubble Sort
class BubbleSort
{
void bubbleSort(int arr[])
{
int n = arr.length;
for (int i = 0; i < n-1; i++)
for (int j = 0; j < n-i-1; j++)
if (arr[j] > arr[j+1])
{
// swap arr[j+1] and arr[i]
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}

/* Prints the array */


void printArray(int arr[])
{
int n = arr.length;
for (int i=0; i<n; ++i)
System.out.print(arr[i] + " ");
System.out.println();
}

// Driver method to test above


public static void main(String args[])
{
BubbleSort ob = new BubbleSort();
int arr[] = {64, 34, 25, 12, 22, 11, 90};
ob.bubbleSort(arr);
System.out.println("Sorted array");
ob.printArray(arr);
}
}
/* This code is contributed by Rajat Mishra */

Output:
Sorted array:
11 12 22 25 34 64 90
<!—-Illustration :

—>
Optimized Implementation:
The above function always runs O(n^2) time even if the array is sorted. It can be
optimized by stopping the algorithm if inner loop didn’t cause any swap.
Optimized Implementation:
The above function always runs O(n^2) time even if the array is sorted. It can be
optimized by stopping the algorithm if inner loop didn’t cause any swap.
 CPP
 Java
 Python3
 C#
 PHP
filter_none
edit
play_arrow
brightness_4
// Optimized java implementation
// of Bubble sort
import java.io.*;

class GFG
{
// An optimized version of Bubble Sort
static void bubbleSort(int arr[], int n)
{
int i, j, temp;
boolean swapped;
for (i = 0; i < n - 1; i++)
{
swapped = false;
for (j = 0; j < n - i - 1; j++)
{
if (arr[j] > arr[j + 1])
{
// swap arr[j] and arr[j+1]
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
swapped = true;
}
}

// IF no two elements were


// swapped by inner loop, then break
if (swapped == false)
break;
}
}

// Function to print an array


static void printArray(int arr[], int size)
{
int i;
for (i = 0; i < size; i++)
System.out.print(arr[i] + " ");
System.out.println();
}

// Driver program
public static void main(String args[])
{
int arr[] = { 64, 34, 25, 12, 22, 11, 90 };
int n = arr.length;
bubbleSort(arr, n);
System.out.println("Sorted array: ");
printArray(arr, n);
}
}

// This code is contributed


// by Nikita Tiwari.
Output:
Sorted array:
11 12 22 25 34 64 90

You might also like