1
的在上述URL可清楚地寫入的短泡在冒泡排序的修改,以減少傳遞的數量。 因此,在我的兩個算法的實現中,我添加了一個計數器來計算通過次數,並且令人驚訝的是兩者都有相同的數字。的通行證。 這裏是我的代碼:
def bubbleshort(mylist):
flag= True
passnum= len(mylist) -1
counter = 0
while flag and passnum > 0:
flag = False
for element in range(passnum):
if mylist[element] > mylist[element + 1]:
flag = True
temp= mylist[element]
mylist[element]= mylist[element+1]
mylist[element + 1] = temp
counter += 1
passnum -= 1
return mylist, counter
def bubble(yourlist):
count=0
for i in range(len(yourlist)-1, 0, -1):
for swap in range(i):
if yourlist[swap] > yourlist[swap + 1]:
temp=yourlist[swap]
yourlist[swap]=yourlist[swap + 1]
yourlist[swap + 1]= temp
count+= 1
return yourlist, count
mylist = [20,30,40,90,50,60,70,80,100,110]
mylistx = [20,30,40,90,50,60,70,80,100,110]
sortedList, counter= bubbleshort(mylist)
sortList, count= bubble(mylistx)
print(sortedList,counter)
print(sortList,count)
而且如果我通過同一份名單,無論是泡沫的功能是生成零數,但仍給人一種排序列表的功能。 所以有人可以告訴我什麼是修改的目的,當沒有。的通行證是一樣的。他們也許有機會實施我的計數器是錯誤的,爲什麼我會得到錯誤的答案。
沒有短的氣泡需要2次通過 –
好的。它的工作原理@Terry Li –
但你能解釋它是如何工作的。我的意思是我剛剛添加了一個標誌 –