Bubble Sort – Python
Last Updated :
21 Feb, 2025
Improve
Bubble Sort is the simplest sorting algorithm that works by repeatedly swapping the adjacent elements if they are in the wrong order.
- Bubble Sort algorithm, sorts an array by repeatedly comparing adjacent elements and swapping them if they are in the wrong order.
- The algorithm iterates through the array multiple times, with each pass pushing the largest unsorted element to its correct position at the end.
- Code includes an optimization: if no swaps are made during a pass, the array is already sorted, and the sorting process stops.
Below is the Python Implementation of Bubble Sort:
def bubble_sort(arr):
# Outer loop to iterate through the list n times
for n in range(len(arr) - 1, 0, -1):
# Initialize swapped to track if any swaps occur
swapped = False
# Inner loop to compare adjacent elements
for i in range(n):
if arr[i] > arr[i + 1]:
# Swap elements if they are in the wrong order
arr[i], arr[i + 1] = arr[i + 1], arr[i]
# Mark that a swap has occurred
swapped = True
# If no swaps occurred, the list is already sorted
if not swapped:
break
# Sample list to be sorted
arr = [6,6,2]
print("Unsorted list is:")
print(arr)
bubble_sort(arr)
print("Sorted list is:")
print(arr)
Output
Unsorted list is: [39, 12, 18, 85, 72, 10, 2, 18] Sorted list is: [2, 10, 12, 18, 18, 39, 72, 85]
Time Complexity: O(n2). However in practice, this optimized version might take less time as when array gets sorted, function would return.
Auxiliary Space: O(1).
Please refer complete article on Bubble Sort for more details!