我不明白第 2 行發(fā)生了什么,帶有“-1, 0 , -1”。為什么需要這樣做,零代表什么?我已經(jīng)運行了代碼,當我刪除了“-1,0,-1”部分并且它沒有對列表進行排序時。我不明白為什么它是代碼的關(guān)鍵部分def bubbleSort(alist): for passnum in range(len(alist)-1,0,-1): #line 2 for i in range(passnum): if alist[i]>alist[i+1]: temp = alist[i] alist[i] = alist[i+1] alist[i+1] = tempalist = [54,26,93,17,77,31,44,55,20]bubbleSort(alist)print(alist)
3 回答

哈士奇WWW
TA貢獻1799條經(jīng)驗 獲得超6個贊
這與算法無關(guān)。range
有 3 個參數(shù)
從
到
步
在這種情況下,這意味著
從最后一個元素開始(索引=N-1)
繼續(xù)直到第二個(索引= 0)
step=-1(倒退)

MMMHUHU
TA貢獻1834條經(jīng)驗 獲得超8個贊
這些是range(start, stop, sep)
(https://docs.python.org/3/library/functions.html#func-range)的參數(shù)在您的情況下,您創(chuàng)建一個以列表長度 -1 ( len(alist)-1
)開頭的范圍,并計數(shù)到0,通過采取-1的步驟。
添加回答
舉報
0/150
提交
取消