我写了一个函数,它带有两个列表,即华氏值和摄氏度值。我使用了一种选择排序方法,应该从最小值到最大值对值进行排序。可能的Fahr值介于-150和350之间(我写了一个函数来确保输入在这些数字内)。当我键入以下输入时:(30,60,10,-523235,-22,30)它会忽略-523235,但它的输出是:(10,30,60,-22,30),它不是正确。它只对前3个数字进行排序,但一旦输入负数,它就不会排序......我很困惑。选择排序不适用于某些输入...(或没有正确显示)
(被其他功能我写了转换的法尔值CELS值产生的摄氏温度相对但这不要紧,这个问题)
def selection_sort_Fahr_Cels(temp_values_Fahr, temp_values_Cels):
for i in range(0, len(temp_values_Fahr)):
minIndex = i
for val in range(i+1, len(temp_values_Fahr)):
if temp_values_Fahr[val] < temp_values_Fahr[i]:
minIndex = val
if minIndex != i:
temp_values_Fahr[i], temp_values_Fahr[minIndex] = temp_values_Fahr[minIndex], temp_values_Fahr[i]
for i in range(0, len(temp_values_Cels)):
minIndex = i
for val in range(i+1, len(temp_values_Cels)):
if temp_values_Cels[val] < temp_values_Cels[i]:
minIndex = val
if minIndex != i:
temp_values_Cels[i], temp_values_Cels[minIndex] = temp_values_Cels[minIndex], temp_values_Cels[i]
print(" ", " Fahr "," ", " Cels ")
print(" ", "======="," ", "=======")
for i in range(len(temp_values_Fahr)):
print(" ","{0: 6}{1:14.1f}".format(temp_values_Fahr[i], temp_values_Cels[i]))
print(" ", "======="," ", "=======")
整个程序是超过100行,我可以如果需要,发布链接到整个程序。
更新:我不能使用任何库函数进行排序。
https://ideone.com/GyYQIQ <---这是完整程序的链接,它是未完成的,并且是这样写的,因为我打算这样。即使不需要,它也意味着具有多种功能。 – Spencer456