这是我的原始数组:a = [0, 4, 7, 8, 1, 3, 5, 2, 6]
这是它打印的内容:[0, 4, 7, 0, 0, 0, 5, 0, 0]
for i in a:
pos = i
min = a[i]
for j in a:
if a[j] < min:
min = a[j]
pos = j
a[pos] = a[i]
a[i] = min
print(a)
答案 0 :(得分:4)
作为@'李俊伟',看来您的算法不正确。但是可能还需要指出其他一些事情。
这两行看起来不对。
for i in a:
for j in a:
i和j代表a
元素的值而不是索引值。我想你是说
for i in range(len(a)):
得到零的原因是因为min初始化为0。注意,它不是零不是因为索引,而是因为0是数组中的第一个值。一旦min为零,这是该行中数组中的最小值
if a[j] < min:
永远不可能是真的。所以这行
a[i] = min
将所有内容设置为零。尽管每个元素都不为零,因为a [i]不是顺序的。之所以跳来跳去是因为我是元素值而不是索引。
答案 1 :(得分:2)
嗯,您要实现哪种排序算法?如果您要执行的操作是冒泡排序,则应该像这样:
a = [0, 4, 7, 8, 1, 3, 5, 2, 6]
n=len(a)
for i in range(n):
for j in range(n-1):
if a[j+1] < a[j]:
min = a[j+1]
a[j+1] = a[j]
a[j] = min
print(a)
答案 2 :(得分:0)
您没有解释您到底想要什么,但是如果您要对数组进行排序,例如从45312到12345 ...
print(sorted(mylist))
a=sorted(mylist)# store in a variable