# The Bubble Sort Algorithm in Python

The bubble sort does exactly what you’d expect it to do. It sorts an input list by treating each element as a bubble that climbs up the list. Each bubble rises as long as it is greater than the list elements. If a list element is smaller or equal to a list element, the bubble stops to rise and the list element starts to bubble up.

## Bubble Sort Python Algorithm

```def bubblesort(lst):
for passesLeft in range(len(lst)-1, 0, -1):
for i in range(passesLeft):
if lst[i] > lst[i + 1]:
lst[i], lst[i + 1] = lst[i + 1], lst[i]
return lst

l = [5, 3, 4, 1, 2, 0]
print(bubblesort(l))
# [0, 1, 2, 3, 4, 5]
```

## Bubble Sort Algorithm Explanation

The precise algorithm works as follows. The outer index variable `border` marks the index after which the right-hand list elements are already sorted.

The inner index variable `i` goes from left to right until it reaches the index variable border. On its way to the right, it switches two subsequent list elements if the first element is larger than the second element.

Hence, after the first pass, the largest element in the list is on the right. As this right-most element is already sorted, we can reduce the size of the list to be sorted by one, i.e., decrement the variable border.

Next, the second largest element will rise to the top and the procedure repeats.

Study this basic algorithmic pattern carefully. Every computer scientists and every great coder must know it.

## Bubble Sort Puzzle

Can you solve the following puzzle on our interactive Finxter puzzle app? (Click to solve)

Are you a master coder?

## Where to Go From Here?

Enough theory. Let’s get some practice!

Coders get paid six figures and more because they can solve problems more effectively using machine intelligence and automation.

To become more successful in coding, solve more real problems for real people. That’s how you polish the skills you really need in practice. After all, what’s the use of learning theory that nobody ever needs?

You build high-value coding skills by working on practical coding projects!

Do you want to stop learning with toy projects and focus on practical code projects that earn you money and solve real problems for people?

🚀 If your answer is YES!, consider becoming a Python freelance developer! It’s the best way of approaching the task of improving your Python skills—even if you are a complete beginner.

If you just want to learn about the freelancing opportunity, feel free to watch my free webinar “How to Build Your High-Income Skill Python” and learn how I grew my coding business online and how you can, too—from the comfort of your own home.

Join the free webinar now!