What you need:

1) Unsorted array

2) for loop i - number of loop is based on the number of elements in the array. Each loop of i would reset loop of j to index zero.

3) for loop j - number of loop is based on number of loop i minus - 1 for every loop of j. Why? we are already sure that the last element of each loop is sorted and doesn't needed to be compared in the next loop (hence -1).

4) a variable to switch number. you don't need this in Python.

Visualization:

If you are wondering how i made this, i used Numbers App in my MacBook.

### Python program for implementation of Bubble Sort

``````def bubbleSort(arr):
n = len(arr)

# Traverse through all array elements
for i in range(n):

# Last i elements are already in place
for j in range(0, n-i-1):

# traverse the array from 0 to n-i-1
# Swap if the element found is greater
# than the next element
if arr[j] > arr[j+1] :
arr[j], arr[j+1] = arr[j+1], arr[j]
``````

### Driver code to test above

``````arr = [64, 34, 25, 12, 22, 11, 90]

bubbleSort(arr)
print ("Sorted array is:")

for i in range(len(arr)):
print ("%d" %arr[i]),``````

Source for code: https://www.geeksforgeeks.org/bubble-sort/