×

Python Bubble Sort

Bubble sort is one of the techniques used to sort the elements in lists in a certain order, either in ascending or descending order. It is called Bubble sort because lower values get bubbled up to the front while the larger values sink into the last and stay there.

In this article, we will explain the Bubble sort algorithm and the mechanism with the program using Python.

Bubble Sort Algorithm

Bubble sort algorithm simply compares each pair of adjacent items and, if they are in the wrong order, swaps them, and this process continues until the end of the list till all the elements in the list are in order.

Example

Let’s understand it with an example to make things clear:

Assume we need the given list in ascending order: applying bubble sort, the mechanism would be like:

List1 = [7, 2, 8, 5, 4]

7

2

8

5

4

Firstly, the first two elements are checked. 7 is greater than 2, so they have to be swapped, which becomes:

2

7

8

5

4

Now, the second and third elements are compared. 7 and 8 are in the correct order. So, the next two elements are checked. 8 and 5 are not in the correct order, so swap.

2

7

5

8

4

Now, the last two elements are checked. Not in the order, so swap.

2

7

5

4

8

Here is the result after the first iteration. Now, the size for the next iterations will be lessened by 1 as the highest elements already got their spot. The highest element is bubbled up at the end. Now, again the same process is repeated.

The first two elements are checked. 2 and 7 are correct. So, the next two elements are checked. 7 and 5 are not in the right order, so swap.

2

5

7

4

8

The last check, 7 and 4, is compared and then swapped.

2

5

4

7

8

The second iteration is also done now. Again the size for the iteration is decreased by 1, and the third iteration is started.

2

5

4

7

8

The first two elements are checked. 2 and 5 are correct, so the next two elements are checked. 5 and 4 are not in order, so SWAP.

2

4

5

7

8

Now, in the last iteration, the first two elements are checked, and SORTING is done as they are in the correct order.

2

4

5

7

8

Here is the whole process all in the same picture:

Python Bubble Sort

Algorithm

  1. From index 0, compare the elements with the succeeding element in the list.
  2. If the element you're working on is greater than the succeeding element, swap the two elements.
  3. Else, if both elements are in the correct order, then go to the next element of the succeeding element and the succeeding element and repeat step number 1.

The whole process is limited to sorting the elements into ascending order. We can do it in descending order too. The only change will be in the comparison. We check if the element we're working on is less than the next element, and if it is; we leave it and go to the next elements, while if they are not, we swap the elements. It bubbles up the smallest element. But, all the time, mostly ascending order is used and preferred.

Python Program to implement Bubble Sort

Here is the Python program to implement bubble sort on a list

def bubbleSort (list1):
n = len (list1)
 for i in range(n-1):
       for j in range(0, n-i-1):
             if list1[j] > list1 [j + 1] :
                list1 [j], list1 [j + 1] = list1 [j + 1], list1 [j]
 list1 = [7, 2, 8, 5, 4]
bubbleSort (list1)
print ("Sorted list is:")
for i in range (len (list1)):
    print ("% d" % list1 [i], end=" ")

Output:

Sorted list is:
2
4
5
7
8

Explanation:

In the above program, we wrote a function “bubbleSort” that takes the list as the parameter and in the function; we took the length of the list as the variable n. Now, we used nested loops. In the first loop, we traverse through the loop and in the second loop; we traverse through the loop till the last but one element. Now, we check if the elements are in the correct order and then swap if not.

Here is the mechanism table:

First, the list looks like [7, 2, 8, 5, 4]

i

j

j+1

if (list1[j] > list1 [j+1])

Swap, then list1:

0

0

1

7 > 2 yes so swap

[2, 7, 8, 5, 4]

1

2

7 > 8 no

[2, 7, 8, 5, 4]

2

3

8 > 5 yes so swap

[2, 7, 5, 8, 4]

3

4

8 > 4 yes so swap

[2, 7, 5, 4, 8]

1

0

1

2 > 7 no

[2, 7, 5, 4, 8]

1

2

7 > 5 so swap

[2, 5, 7, 4, 8]

2

3

7 > 4 so swap

[2, 5, 4, 7, 8]

2

0

1

2 > 5 no

[2, 5, 4, 7, 8]

1

2

5 > 4 so swap

[2, 4, 5, 7, 8]

3

0

1

2 > 4 no

[2, 4, 5, 7, 8]

Advantages

Bubble sort is really the simplest algorithm out of all the algorithms used for sorting. Also, this mechanism has a lot of advantages, which are given below:

  • It is simple to understand, write and takes less number of lines.
  • All the data is stored in one place and there is little memory overhead. Moreover, after the procedure is done, the data in the memory will be ready to be processed.

Disadvantages

Disadvantages include the time. It needs to check every pair of adjacent items for the size of elements in the array for several number of times, which takes more time. As the number of elements in the list increases, the amount of time required to implement bubble sort on the list increases exponentially. Ten times the size of array makes the time required hype up to almost 100 times.


Related Topics

Python String Methods

Python String Methods Python has a set of built-in string methods. The Python string methods are as follows: capitalize() The string.capitalize() method returns a copy of the string by converting the...

5 minutes read.

Python set()

Python set() Class The set() class in Python returns a new set object, optionally with elements taken from iterable.  Syntax class set([iterable]) Parameter iterable : This parameter represents a sequence, collection or an iterator object Return This function returns a...

1 minute read.

Python SciPy Library

Introduction SciPy, a logical library for Python is an open-source, BSD-authorized library for arithmetic, science, and design. The SciPy library relies upon NumPy, which gives advantageous and quick N-dimensional exhibit control....

6 minutes read.

Python format() function

Python format() function The format() function in Python formats a specified value into the given format. A ‘TypeErrorexception’ is raised if the method search reaches the object and the format_spec is non-empty, or if either the format_spec or the...

1 minute read.

Add Element to Tuple in Python

Python: Popular high-level, all-purpose programming language Python. The new version of the Python programming language, Python 3, is used for all software applications, including web development. Python is the best programming...

4 minutes read.

How to Parse JSON in Python

JSON The JSON, the Java Script Object Notation, is an open standard file designed for data interchange; it is light-weighted text. The JSON uses human-readable text to store and transmit the...

4 minutes read.

GUI Calendar using Tkinter in Python

GUI: A graphical interface (GUI) is a user interface that lets users interact with electronic devices like computers and smartphones by using menus, icons, and other visual cues (graphics). In contrast...

3 minutes read.

Python Recursion

Recursion is one of the most interesting yet important concepts of any programming language. If you want to be a good programmer or data scientist, then you should better have...

4 minutes read.

Python Redis Example

Introduction: Redis, representing Distant Word reference Server, is a kind of key-esteem NoSQL server. Redis is intended to help circle capacity for determination, holding information after power is stopped, and stores information...

5 minutes read.

Python PPTX

Python-pptx is a python library that enables the user to create and update PowerPoint (.pptx) presentations. It is used to create modified PowerPoint presentations from the db content that can...

10 minutes read.

Get Bounding Box Co-ordinates Python

Python: Python is an interactive and more accessible language than any other programming language. The python programming language uses a variety of libraries to perform the operations in a faster way....

6 minutes read.

How to Pass a list as an Argument in Python

Lists in Python A list is a datatype in python which is used to store the data in a sequence. The lists are mutable; that is, we can change the values...

3 minutes read.

Python Command line Arguments

Python Command line Arguments The command-line argument is used to the change functionality of the program. It's an extra command the programmer can use while launching a program. These commands have many uses...

7 minutes read.

Python Dictionary keys() method

Python Dictionary keys() method The dictionary.keys() method in Python returns a view object that displays a list of all the keys in the dictionary Syntax dictionary.keys() Parameter NA Return This method returns a view object that displays...

2 minutes read.

Exclusive OR in Python

In Python, the exclusive OR (XOR) operator is represented by the caret symbol (^). It compares each bit of the first operand to the corresponding bit of the second operand,...

3 minutes read.

Python filter() function

Python filter() function The filter() function constructs an iterator from those elements of iterable for which the parameter ‘function’ returns a Boolean value true. Syntax filter(function, iterable) Parameter function: This parameter represents a function to be run for each item in the...

1 minute read.

String indices must be integers in Python

Lists, tuples, and strings are examples of iterable objects in Python whose items or characters can be retrieved by their index numbers. For instance, you might take the following action to...

3 minutes read.

Python program to print array element present at even position

Python program to print array element present at even position In this program, we'll see a Python program that prints the elements of an array that are in even positions. We...

1 minute read.

Check Palindrome in Python

Python is an object-oriented high-level programming language. Python has dynamic semantics and has high-level built-in data structures which support dynamic typing and dynamic binding. Python provides rapid development. It has...

4 minutes read.

Decision Tree Classification in Python

In this article, we will learn the implementation of the decision tree in Sklearn, which is nothing but the Scikit Learn library of python. First, we should learn what classification...

12 minutes read.