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?
Test your skills now!
Bubble Sort Video
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.
Join my free webinar “How to Build Your High-Income Skill Python” and watch how I grew my coding business online and how you can, too—from the comfort of your own home.
While working as a researcher in distributed systems, Dr. Christian Mayer found his love for teaching computer science students.
To help students reach higher levels of Python success, he founded the programming education website Finxter.com. He’s author of the popular programming book Python One-Liners (NoStarch 2020), coauthor of the Coffee Break Python series of self-published books, computer science enthusiast, freelancer, and owner of one of the top 10 largest Python blogs worldwide.
His passions are writing, reading, and coding. But his greatest passion is to serve aspiring coders through Finxter and help them to boost their skills. You can join his free email academy here.