# 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[0]); ` `    ``bubbleSort(arr, n); ` `    ``printf``(``"Sorted array: \n"``); ` `    ``printArray(arr, n); ` `    ``return` `0; ` `} `

Please refer complete article on Bubble Sort for more details!

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up
Article Tags :
Practice Tags :

4

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