Open In App

Bubble Sort – Python

Last Updated : 21 Feb, 2025
Summarize
Comments
Improve
Suggest changes
Like Article
Like
Share
Report
News Follow

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! 

Python Program for Bubble Sort – FAQs

What is Bubble Sort?

Bubble Sort is a simple comparison-based sorting algorithm. It works by repeatedly stepping through the list, comparing adjacent elements and swapping them if they are in the wrong order. The process is repeated until the list is sorted. The largest unsorted element “bubbles” to its correct position in each pass.

When should I use Bubble Sort?

  • Bubble Sort is typically used for small datasets or when you want a simple sorting algorithm.
  • It is not suitable for large datasets because of its O(n^2) time complexity.

What are the limitations of Bubble Sort?

  • Inefficient for large datasets: The time complexity of O(n^2) makes it slow for large datasets.
  • Not suitable for unsorted data: For large or completely unsorted datasets, other algorithms like Merge Sort or Quick Sort are preferred.

Next Article

Similar Reads

three90RightbarBannerImg