【发布时间】:2016-09-14 10:22:54
【问题描述】:
所以我应该输入一个数字 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]
【问题讨论】:
-
提供样本输入、实际输出和预期输出
-
这只是通过列表的一次...你需要继续直到你没有交换......你也可以用
vals[x],vals[y]=vals[y],vals[x]交换python -
是否需要实现排序算法?因为实际的答案是使用内置的 Python 排序方法。
-
我们必须创建自己的排序算法,但它可能类似于预制算法。我认为这是基于选择排序的。怎么只通过一次?