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:

image-56

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/