所以我应该输入一个数字 n,将 n 个数字添加到列表中,然后对列表进行排序并打印。
numCol=int(input());
vals=[];
for x in range(numCol):
vals.append(int(input()))
for x in range(len(vals)):
curr=vals[x];
for y in range(x+1,len(vals)):
if(curr>vals[y]):
temp=vals[y];
vals[y]=curr;
vals[x]=temp;
print(vals);
代码无法正常工作。我们还没有真正彻底地学习排序算法,所以我只是在制作自己的算法,但我认为它类似于选择排序。无论如何,为什么不按升序打印值?
编辑:我输入 4,然后生成列表 4、3、2、1。输出为 [1、4、4、4]
最佳答案
问题是 curr
应该在交换后改变。
for x in range(len(vals)):
curr=vals[x];
for y in range(x+1,len(vals)):
if(curr > vals[y]):
temp = vals[y]
vals[y] = curr
vals[x] = temp
curr = vals[x] # <--
关于python - 这个排序代码有什么问题? Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37291013/