From 7bcb9a45af69bbb3d712ea4c80e1ab3dce78dfa5 Mon Sep 17 00:00:00 2001 From: Shubham Chaudhary <2006shubhamchaudhary@gmail.com> Date: Sun, 23 Nov 2025 11:17:25 +0530 Subject: [PATCH] Added optimized version of bubble sort with early exit feature --- sorting/optimized_bubble_sort.cpp | 32 +++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 sorting/optimized_bubble_sort.cpp diff --git a/sorting/optimized_bubble_sort.cpp b/sorting/optimized_bubble_sort.cpp new file mode 100644 index 00000000000..e5141c961ae --- /dev/null +++ b/sorting/optimized_bubble_sort.cpp @@ -0,0 +1,32 @@ +#include +using namespace std; + +void bubbleSort(int arr[], int n) { + bool swapped; + for (int i = 0; i < n - 1; i++) { + swapped = false; + + for (int j = 0; j < n - i - 1; j++) { + if (arr[j] > arr[j + 1]) { + swap(arr[j], arr[j + 1]); + swapped = true; + } + } + + // If no elements were swapped, array is already sorted + if (swapped == false) + break; + } +} + +int main() { + int arr[] = {5, 1, 4, 2, 8}; + int n = sizeof(arr)/sizeof(arr[0]); + + bubbleSort(arr, n); + + for (int i = 0; i < n; i++) + cout << arr[i] << " "; + + return 0; +}