diff --git a/code_to_optimize/bubble_sort.py b/code_to_optimize/bubble_sort.py index 9e97f63a0..6c3c4b3cc 100644 --- a/code_to_optimize/bubble_sort.py +++ b/code_to_optimize/bubble_sort.py @@ -1,10 +1,17 @@ def sorter(arr): print("codeflash stdout: Sorting list") - for i in range(len(arr)): - for j in range(len(arr) - 1): + n = len(arr) + # Optimized bubble sort: on each pass, the largest elements settle at the end. + for i in range(n): + swapped = False + # Reduce inner loop range for already-sorted tail + for j in range(n - i - 1): if arr[j] > arr[j + 1]: - temp = arr[j] - arr[j] = arr[j + 1] - arr[j + 1] = temp + # Swap elements directly (no temp variable needed) + arr[j], arr[j + 1] = arr[j + 1], arr[j] + swapped = True + # Early exit if no swaps, array is already sorted + if not swapped: + break print(f"result: {arr}") return arr