簡體   English   中英

冒泡排序 Python 只排序一次

[英]Bubble Sort Python sorting only once

任何人都可以幫助我識別該程序中的冒泡排序錯誤嗎?

def bsort(a):
    for i in range (0, len(a)-1):
        for j in range(i):
            if a[j]> a[j+1]:
                temp = a[j]
                a[j] = a[j+1]
                a[j+1] = temp

num = [1,2,6,5,7,2,5,9]
bsort(num)
print(num)

它只對列表進行一次排序。

更改外循環中的范圍:

for i in range (0, len(a)):

for 循環中的小問題。

def bsort(a):
    for i in range (0, len(a)-1):
        for j in range(len(a)-2): ## updated here
            if a[j]> a[j+1]:
                temp = a[j]
                a[j] = a[j+1]
                a[j+1] = temp

num = [1,2,6,5,7,2,5,9]
bsort(num)
print(num)

輸出為[1, 2, 2, 5, 5, 6, 7, 9]

暫無
暫無

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

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