簡體   English   中英

冒泡排序在python中排序不正確

[英]Bubble sort not sorting properly in python

我正在 Python 中進行冒泡排序,但不知道為什么排序不正確。

N = [80000, 20, 40 , 50, 10000, 50, 60, 90, 100, 5000, 22]
for i in range(len(N)-1):
    for j in range(len(N)-i-1):
        if(N[i] > N[i+1]):
            N[i], N[i+1] = N[i+1], N[i]
print(N)

這是這段代碼的結果

[20, 40, 50, 10000, 50, 60, 90, 100, 5000, 22, 80000]

您應該在第二個循環的主體中使用 'j' 而不是 'i'。 否則兩個循環都是沒有意義的。 只有外循環被有效執行。

您應該將N[j]N[j+1] ,因為如果相鄰elements順序錯誤,則需要重復交換相鄰elements

N = [80000, 20, 40 , 50, 10000, 50, 60, 90, 100, 5000, 22]
for i in range(len(N)-1):
    for j in range(len(N)-i-1):
        if(N[j] > N[j+1]):
            N[j], N[j+1] = N[j+1], N[j]
print(N)

輸出

[20, 22, 40, 50, 50, 60, 90, 100, 5000, 10000, 80000]

我相信您混淆了索引 i 和 j。 它應該是:

N = [80000, 20, 40 , 50, 10000, 50, 60, 90, 100, 5000, 22]
for i in range(len(N)-1):
for j in range(len(N)-i-1):
    if(N[j] > N[j+1]):
        N[j], N[j+1] = N[j+1], N[j]
print(N)

輸出:

[20, 22, 40, 50, 50, 60, 90, 100, 5000, 10000, 80000]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM