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
如果顺序错误。
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]
我正在 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
如果顺序错误。
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]