"""Bubblesort
"""
## Un-optimised--------------------------------------------------------------
def bubble_1(lst):
n = len(lst) - 1
for i in range(n):
# Within the unsorted portion
for j in range(n - i):
# If curr > next, swap
if lst[j] > lst[j+1]:
lst[j], lst[j+1] = lst[j+1], lst[j]
return lst # for easy testing
def bubble_2(lst):
n = len(lst) - 1
# Within the unsorted portion, except the last number
for unsorted in range(n, 0, -1):
for i in range(unsorted):
# If curr > next, swap
if lst[i] > lst[i+1]:
lst[i], lst[i+1] = lst[i+1], lst[i]
return lst # for easy testing
## Optimised-----------------------------------------------------------------
def bubble_3(lst):
n = len(lst) - 1
# Within the unsorted portion, except the last number
for unsorted in range(n, 0, -1):
swapped = False
for i in range(unsorted):
# If curr > next, swap
if lst[i] > lst[i+1]:
lst[i], lst[i+1] = lst[i+1], lst[i]
swapped = True
# Check if its sorted by this time
if not swapped:
break
return lst # for easy testing