## Bubble Sort

Sorting Algorithms are concepts that every competitive programmer must know. Sorting algorithms can be used for collections of numbers, strings, characters, or a structure of any of these types.

Bubble sort is based on the idea of repeatedly comparing pairs of adjacent elements and then swapping their positions if they exist in the wrong order.

Assume that A[] is an unsorted array of n elements. This array needs to be sorted in ascending order. The pseudo code is as follows:

C/C++

// C program for implementation of Bubble sort#include <stdio.h>void swap(int *xp, int *yp){int temp = *xp;*xp = *yp;*yp = temp;}// A function to implement bubble sortvoid bubbleSort(int arr[], int n){int i, j;for (i = 0; i < n-1; i++) // Last i elements are already in place for (j = 0; j < n-i-1; j++) if (arr[j] > arr[j+1])swap(&arr[j], &arr[j+1]);}/* Function to print an array */void printArray(int arr[], int size){int i;for (i=0; i < size; i++)printf("%d ", arr[i]);printf("n");}// Driver program to test above functionsint main(){int arr[] = {64, 34, 25, 12, 22, 11, 90};int n = sizeof(arr)/sizeof(arr[0]);bubbleSort(arr, n);printf("Sorted array: \n");printArray(arr, n);return 0;}

Java

// Java program for implementation of Bubble Sortclass 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 temp 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 abovepublic 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);}}

Python

# Python program for implementation of Bubble Sortdef bubbleSort(arr):n = len(arr)# Traverse through all array elementsfor i in range(n):# Last i elements are already in placefor j in range(0, n-i-1):# traverse the array from 0 to n-i-1# Swap if the element found is greater# than the next elementif arr[j] > arr[j+1] :arr[j], arr[j+1] = arr[j+1], arr[j]# Driver code to test abovearr = [64, 34, 25, 12, 22, 11, 90]bubbleSort(arr)print ("Sorted array is:")for i in range(len(arr)):print ("%d" %arr[i]),