我正在尝试打印每次冒泡排序以及更改次数。
例如:
1 [1、3、5、7、2、9、4、6、8]
2 [1、3、5、7、2、9、4、6、8]
3 [1、3、5、7、2、9、4、6、8]等。
到目前为止,这是我的代码:
def main():
lst = [1, 3, 5, 7, 9, 2, 4, 6, 8]
bubbleSort(lst)
def bubbleSort(inputList):
didSwap = True
while didSwap:
didSwap = False
for i in range(len(inputList) - 1):
if inputList[i] > inputList[i + 1]:
inputList[i], inputList[i + 1] = inputList[i + 1],
inputList[i]
didSwap = True
print(inputList)
main()
` 这是此代码的输出:
[1, 3, 5, 7, 2, 9, 4, 6, 8]
[1, 3, 5, 7, 2, 4, 9, 6, 8]
[1, 3, 5, 7, 2, 4, 6, 9, 8]
[1, 3, 5, 7, 2, 4, 6, 8, 9]
[1, 3, 5, 2, 7, 4, 6, 8, 9]
[1, 3, 5, 2, 4, 7, 6, 8, 9]
[1, 3, 5, 2, 4, 6, 7, 8, 9]
[1, 3, 2, 5, 4, 6, 7, 8, 9]
[1, 3, 2, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
很显然,它会正确地对列表进行排序并打印每遍。但是,它不会在每次通过的开始时打印每次更改时的计数。我想念什么?
答案 0 :(得分:0)
添加变量计数,并在每次发声时增加计数
def bubblesort(InputList):
didswap = True
count = 0
while didswap:
didswap = False
count += 1
...
print(count, InputList)