选择排序,为什么编译出现问题,会出现运行错误?请大家看看问题出在哪里。

题目描述

用选择法对10个整数从小到大排序。

输入

输入10个无序的数字
例如:4 85 3 234 45 345 345 122 30 12

输出

排序好的10个整数
例如:
3
4
12
30
45
85
122
234
345
345

我的解答思路和尝试过的方法
a=[]
for i in input().split(' '):
    a.append(eval(i))
for j in range(10):
    for k in range(j,10):
        if a[k]<a[j]:
            a[j],a[k]=a[k],a[j]
for m in a:
    print(m)

我得到的结果

img

编译结果

img


这是为什么错了,我用的也是选择排序。

选择法是外循环一次只交换一次,其余的遍历都是记录
a=[]
for i in input(">>>").split(' '):
    a.append(eval(i))
for j in range(10):
    t = a[j]
    pos = j
    for k in range(j,10):
        if a[k]<t:
            t = a[k]
            pos = k
    a[j],a[pos]=a[pos],a[j]
for m in a:
    print(m)