diff --git a/code_to_optimize/bubble_sort_3.py b/code_to_optimize/bubble_sort_3.py index db7db5f92..7093dfbf0 100644 --- a/code_to_optimize/bubble_sort_3.py +++ b/code_to_optimize/bubble_sort_3.py @@ -1,8 +1,11 @@ def sorter(arr): - for i in range(len(arr)): - for j in range(len(arr) - 1): + n = len(arr) + for i in range(n): + swapped = False + 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 + arr[j], arr[j + 1] = arr[j + 1], arr[j] + swapped = True + if not swapped: + break return arr