diff --git a/sorting-algorithms/Bubble_sort.cpp b/sorting-algorithms/Bubble_sort.cpp new file mode 100644 index 0000000..1c479aa --- /dev/null +++ b/sorting-algorithms/Bubble_sort.cpp @@ -0,0 +1,44 @@ +// Optimized implementation of Bubble sort +#include + +// 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[7] = {64, 34, 25, 12, 22, 11, 90}; + bubbleSort(arr, 7); + printf("Array: \n"); + printArray(arr, n); + return 0; +}