# C++ Program for Bubble Sort

Bubble Sort is the simplest sorting algorithm that works by repeatedly swapping the adjacent elements if they are in wrong order.

 `// Optimized implementation of Bubble sort ` `#include ` ` `  `void` `swap(``int` `*xp, ``int` `*yp) ` `{ ` `    ``int` `temp = *xp; ` `    ``*xp = *yp; ` `    ``*yp = temp; ` `} ` ` `  `// An optimized version of Bubble Sort ` `void` `bubbleSort(``int` `arr[], ``int` `n) ` `{ ` `   ``int` `i, j; ` `   ``bool` `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], &arr[j+1]); ` `           ``swapped = ``true``; ` `        ``} ` `     ``} ` ` `  `     ``// IF no two elements were swapped by inner loop, then break ` `     ``if` `(swapped == ``false``) ` `        ``break``; ` `   ``} ` `} ` ` `  `/* 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 functions ` `int` `main() ` `{ ` `    ``int` `arr[] = {64, 34, 25, 12, 22, 11, 90}; ` `    ``int` `n = ``sizeof``(arr)/``sizeof``(arr); ` `    ``bubbleSort(arr, n); ` `    ``printf``(``"Sorted array: \n"``); ` `    ``printArray(arr, n); ` `    ``return` `0; ` `} `

Please refer complete article on Bubble Sort for more details!

My Personal Notes arrow_drop_up
Article Tags :
Practice Tags :

2

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.