import sys
import pdb
a = [5, 2, 4, 1]
for i in range(len(a)):
for j in range(len(a) - 1):
if a[j] > a[j+1]:
t = a[j]
a[j] = a[j+1]
a[j] = t
print a
sys.exit()
我刚刚在Python中尝试了一个C程序 - 没有sorted
函数的正常排序。为什么我没有得到排序列表?
答案 0 :(得分:4)
t = a[j]
接着是
a[j] = t
似乎不对。如果您打算交换它们,第二个应该是:
a[j + 1] = t
但在Python中,最好写成:
a[j], a[j + 1] = a[j + 1], a[j]
(当然,在Python中,很多更好地编写为quicksort。)
答案 1 :(得分:1)
试试这个 - :
for i in range(len(a)):
for j in range(len(a) - 1):
if a[j] > a[j+1]:
a[j+1], a[j] = a[j], a[j+1]
print a
:)
答案 2 :(得分:1)
for
循环中的最后一行应为a[j+1] = t
。我认为这只是代码错误。下次要小心。另外,在Python中,当你想要交换两个变量时,你应该遵循@minitech和@Nilesh G所说的内容。
答案 3 :(得分:0)
a = [5,2,4,1]
for i in range(len(a)):
for j in range(len(a)-1):
If a[j]>a[j+1]:
a[j],a[j+1] = a[j+1],a[j]
Print a
答案 4 :(得分:0)
s = [3, 6, 4, 5, 2, 1, 7, 8, 11, 12]
for k in range(len(s)):
for m in range(len(s)-1):
if s[m]>s[m+1]:
s[m],s[m+1] = s[m+1],s[m]
print s