所以我应该接受一个数字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]
答案 0 :(得分:1)
交换后问题是beginSheet:completionHandler
应该改变。
let session:NSModalSession = NSApp.beginModalSessionForWindow(progSheet)
答案 1 :(得分:1)
更改此部分代码
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;
对此:
for x in range(len(vals)):
for y in range(x+1,len(vals)):
if(vals[x]>vals[y]):
temp=vals[y];
vals[y]=vals[x];
vals[x]=temp;
答案 2 :(得分:0)
您可以更轻松地解决列表排序问题,只需使用sort命令,这里有一个示例:
import random
a=random.sample(range(30), 10)
print a
a.sort()
print a
答案 3 :(得分:0)
欢迎你 -
numCol=int(input());
vals=[];
for x in range(numCol):
vals.append(int(input()))
for x in range(len(vals)):
for y in range(x+1,len(vals)):
if(vals[x]>vals[y]):
temp=vals[y]
vals[y]=vals[x]
vals[x]=temp
print(vals)
问题是你没有改变cur的值来正确比较。
编辑 - 刚刚看到其他答案击败了我:(