我试图在python中创建一个简单的选择排序程序,而不使用任何内置函数。我现在的问题是我的代码只对列表的第一个数字排序。怎么了?你知道吗
这是我喜欢的
def selectionsort(list1):
for x in range(len(list1)):
tiniest = minimum(list1)
swap(tiniest,x,list1)
return(list1)
下面是我使用的最小值和交换函数
def swap(index1,index2,list1):
TheList = list1
temp = TheList[index1]
TheList[index1] = TheList[index2]
TheList[index2] = temp
return(TheList)
def minimum(list1):
small = list1[0]
for i in list1:
if i < small:
small = i
return small
输出示例 列表=[3,2,1,0]
输出=[0,2,1,3]
似乎
minimum
返回list1
中最小元素的值,但是您的swap
需要一个索引。尝试使minimum
返回索引,而不是最小元素的值。你知道吗一些简化将使其更易于阅读/理解:
相关问题 更多 >
编程相关推荐