精慕HU
list(j+1)是错的。“列表”对象不可调用。同样在冒泡排序中,第二个循环直到列表中的倒数第二个元素ie. range(len(list)-1)def swap(a,b): if a > b: t = a a = b b = t return a,bdef sort(list): k=0 for i in range(len(list)): for j in range(len(list)-1): #Change Here if list[j] > list[j+1]: (a,b) = swap(list[j],list[j+1]) #Change here list[j] = a list[j+1] = b k+=1 print(k,' ',list) else: k+=1 continue print(list)list = [5,6,89,2,1,42,23,46,0,83]sort(list)输出3 [5, 6, 2, 89, 1, 42, 23, 46, 0, 83]4 [5, 6, 2, 1, 89, 42, 23, 46, 0, 83]5 [5, 6, 2, 1, 42, 89, 23, 46, 0, 83]6 [5, 6, 2, 1, 42, 23, 89, 46, 0, 83]7 [5, 6, 2, 1, 42, 23, 46, 89, 0, 83]8 [5, 6, 2, 1, 42, 23, 46, 0, 89, 83]9 [5, 6, 2, 1, 42, 23, 46, 0, 83, 89]11 [5, 2, 6, 1, 42, 23, 46, 0, 83, 89]12 [5, 2, 1, 6, 42, 23, 46, 0, 83, 89]14 [5, 2, 1, 6, 23, 42, 46, 0, 83, 89]16 [5, 2, 1, 6, 23, 42, 0, 46, 83, 89]19 [2, 5, 1, 6, 23, 42, 0, 46, 83, 89]20 [2, 1, 5, 6, 23, 42, 0, 46, 83, 89]24 [2, 1, 5, 6, 23, 0, 42, 46, 83, 89]28 [1, 2, 5, 6, 23, 0, 42, 46, 83, 89]32 [1, 2, 5, 6, 0, 23, 42, 46, 83, 89]40 [1, 2, 5, 0, 6, 23, 42, 46, 83, 89]48 [1, 2, 0, 5, 6, 23, 42, 46, 83, 89]56 [1, 0, 2, 5, 6, 23, 42, 46, 83, 89]64 [0, 1, 2, 5, 6, 23, 42, 46, 83, 89][0, 1, 2, 5, 6, 23, 42, 46, 83, 89]