# your code goes here
# your code goes here
def bubbleSort(numList):
'''
Takes a list and returns 2 values
1st returned value: a dictionary with the state of the list after each complete pass of bubble sort
2nd returned value: the sorted list
>>> bubbleSort([9,3,5,4,1,67,78])
({1: [3, 5, 4, 1, 9, 67, 78], 2: [3, 4, 1, 5, 9, 67, 78], 3: [3, 1, 4, 5, 9, 67, 78], 4: [1, 3, 4, 5, 9, 67, 78], 5: [1, 3, 4, 5, 9, 67, 78]}, [1, 3, 4, 5, 9, 67, 78])
'''
# initialization of dictionary and loop counter
bubble_dict = {}
num_loop = 0
# for loop that resets swapped to False and adds 1 to num_loop
for i in range(len(numList) - 1):
swapped = False
num_loop += 1
# runs through the list index, swaps index with index+1 if appropriate
for j in range(len(numList) - 1):
if numList[j] > numList[j+1]:
temp = numList[j]
numList[j] = numList[j+1]
numList[j+1] = temp
swapped = True
# Everything works up to adding to the dictionary, even printouts
# of num_loop and numList
print(num_loop, numList)
bubble_dict[num_loop] = numList
if not swapped:
break
return bubble_dict, numList
print( bubbleSort([9,3,5,4,1,67,78]))
IyB5b3VyIGNvZGUgZ29lcyBoZXJlCiMgeW91ciBjb2RlIGdvZXMgaGVyZQpkZWYgYnViYmxlU29ydChudW1MaXN0KToKICAgICcnJwogICAgICAgIFRha2VzIGEgbGlzdCBhbmQgcmV0dXJucyAyIHZhbHVlcwogICAgICAgIDFzdCByZXR1cm5lZCB2YWx1ZTogYSBkaWN0aW9uYXJ5IHdpdGggdGhlIHN0YXRlIG9mIHRoZSBsaXN0IGFmdGVyIGVhY2ggY29tcGxldGUgcGFzcyBvZiBidWJibGUgc29ydAogICAgICAgIDJuZCByZXR1cm5lZCB2YWx1ZTogdGhlIHNvcnRlZCBsaXN0CgogICAgICAgID4+PiBidWJibGVTb3J0KFs5LDMsNSw0LDEsNjcsNzhdKQogICAgICAgICh7MTogWzMsIDUsIDQsIDEsIDksIDY3LCA3OF0sIDI6IFszLCA0LCAxLCA1LCA5LCA2NywgNzhdLCAzOiBbMywgMSwgNCwgNSwgOSwgNjcsIDc4XSwgNDogWzEsIDMsIDQsIDUsIDksIDY3LCA3OF0sIDU6IFsxLCAzLCA0LCA1LCA5LCA2NywgNzhdfSwgWzEsIDMsIDQsIDUsIDksIDY3LCA3OF0pCiAgICAnJycKICAgICMgaW5pdGlhbGl6YXRpb24gb2YgZGljdGlvbmFyeSBhbmQgbG9vcCBjb3VudGVyCiAgICBidWJibGVfZGljdCA9IHt9CiAgICBudW1fbG9vcCA9IDAKICAgICMgZm9yIGxvb3AgdGhhdCByZXNldHMgc3dhcHBlZCB0byBGYWxzZSBhbmQgYWRkcyAxIHRvIG51bV9sb29wCiAgICBmb3IgaSBpbiByYW5nZShsZW4obnVtTGlzdCkgLSAxKToKICAgICAgICBzd2FwcGVkID0gRmFsc2UKICAgICAgICBudW1fbG9vcCArPSAxCiAgICAgICAgIyBydW5zIHRocm91Z2ggdGhlIGxpc3QgaW5kZXgsIHN3YXBzIGluZGV4IHdpdGggaW5kZXgrMSBpZiBhcHByb3ByaWF0ZQogICAgICAgIGZvciBqIGluIHJhbmdlKGxlbihudW1MaXN0KSAtIDEpOgogICAgICAgICAgICBpZiBudW1MaXN0W2pdID4gbnVtTGlzdFtqKzFdOgogICAgICAgICAgICAgICAgdGVtcCA9IG51bUxpc3Rbal0KICAgICAgICAgICAgICAgIG51bUxpc3Rbal0gPSBudW1MaXN0W2orMV0KICAgICAgICAgICAgICAgIG51bUxpc3RbaisxXSA9IHRlbXAKICAgICAgICAgICAgICAgIHN3YXBwZWQgPSBUcnVlCiAgICAgICAgIyBFdmVyeXRoaW5nIHdvcmtzIHVwIHRvIGFkZGluZyB0byB0aGUgZGljdGlvbmFyeSwgZXZlbiBwcmludG91dHMKICAgICAgICAjIG9mIG51bV9sb29wIGFuZCBudW1MaXN0CiAgICAgICAgcHJpbnQobnVtX2xvb3AsIG51bUxpc3QpCiAgICAgICAgYnViYmxlX2RpY3RbbnVtX2xvb3BdID0gbnVtTGlzdAogICAgICAgIGlmIG5vdCBzd2FwcGVkOgogICAgICAgICAgICBicmVhawoKICAgIHJldHVybiBidWJibGVfZGljdCwgbnVtTGlzdAogICAgCiAgICAKcHJpbnQoIGJ1YmJsZVNvcnQoWzksMyw1LDQsMSw2Nyw3OF0pKQ==
1 [3, 5, 4, 1, 9, 67, 78]
2 [3, 4, 1, 5, 9, 67, 78]
3 [3, 1, 4, 5, 9, 67, 78]
4 [1, 3, 4, 5, 9, 67, 78]
5 [1, 3, 4, 5, 9, 67, 78]
({1: [1, 3, 4, 5, 9, 67, 78], 2: [1, 3, 4, 5, 9, 67, 78], 3: [1, 3, 4, 5, 9, 67, 78], 4: [1, 3, 4, 5, 9, 67, 78], 5: [1, 3, 4, 5, 9, 67, 78]}, [1, 3, 4, 5, 9, 67, 78])