singularity


import time

def bubble_sort(array):
	start = time.time()
	for x in range(len(array)-1):
		for y in range(len(array)-1):
			if array[y] > array[y+1]:
				array[y], array[y+1] = array[y+1], array[y]
	took = time.time() - start
	return array, took

	
def bubble_sort2(array):
	start = time.time()
	for x in range(len(array)-1):
		for y in range(len(array)-1-x):
			if array[y] > array[y+1]:
				array[y], array[y+1] = array[y+1], array[y]
	took = time.time() - start
	return array, took


def bubble_sort_noswaps(array):
	noswaps = False
	start = time.time()
	for x in range(len(array)-1):
		if noswaps:
			return array
		for y in range(len(array)-1):
			if array[y] > array[y+1]:
				array[y], array[y+1] = array[y+1], array[y]
				noswaps = True
	took = time.time() - start
	return array, took
	
				
	
arr1 = [9,5,3,2,4,0,1,6,8,7,5,7,0.1]
sorted = [1,2,3,4,5,6,7,8,9,0]
print(bubble_sort(arr1), '\n', bubble_sort(sorted))
print(bubble_sort2(arr1), '\n', bubble_sort2(sorted))
print(bubble_sort_noswaps(arr1), '\n', bubble_sort_noswaps(sorted))