[英]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.