先在第一行输入整数n和m,再在第二行输入n个整数构成的数列,要求利用选择排序(每趟排序最多交换一次)进行排序,并输出第m趟排序后的数列状况。请把选择排序定义为一个函数。
输入格式:
测试数据有多组,处理到文件尾。对于每组测试,先在第一行输入整数n和m(1<m<n<=40),再在第二行输入n个整数。
输出格式:
对于每组测试,输出m趟选择排序后的结果,每两个数据之间留一个空格。
输入样例:
6 3
3 5 1 2 8 6
4 3
9 8 7 6
20 15
113 2665 487 2498 238 798 616 1697 307 396 536 2640 834 3271 911 2423 271 1522 607 3495
输出样例:
1 2 3 5 8 6
6 7 8 9
113 238 271 307 396 487 536 607 616 798 834 911 1522 1697 2423 2640 2665 2498 3271 3495
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
栈限制
8192 KB
def xz(x,m,n):
for i in range(n):
k=i
for j in range(i,m):
if x[j]<x[k]:
k=j
x[i],x[k]=x[k],x[i]
while 1:
try:
m,n=map(int,input().split())
x=list(map(int,input().split()))
xz(x,m,n)
for j in range(m):
if j<m-1:
print(x[j],end=' ')
else:
print(x[j])
except:
break