我正在撰寫一個程式來使用此最小函式對陣列進行排序但得到意外的結果
def Minimum(Arr,starting,ending):
small = 0
for i in range(starting,ending-1):
#if i 1 != ending:
if Arr[small] > Arr[i 1]:
small = i 1
return small
x=[-5,-3,-4,0,2,3,1,324,321]
def Sort4(Arr):
for i in range(len(Arr)-1):
temp = Arr[i]
value = Minimum(Arr, i, len(Arr))
Arr[i] = Arr[value]
Arr[value] = temp
Sort4(x)
print(x)
結果:[324, -5, -3, -4, 0, 1, 2, 3, 321]但我想要我的結果[-5,-4,-3,0,1,2,3,321,324]我不,不知道為什么我得到錯誤的結果
uj5u.com熱心網友回復:
您的最小功能無法正常運行。您需要檢查(starting, ending)子陣列中的最小值:
def Minimum(Arr, starting, ending):
small = starting # assume first element is the smallest
for i in range(starting, ending): # go through each index in range
if Arr[small] > Arr[i]: # compare with current smallest
small = i # update smallest if required
return small
這使得排序正常作業:
x = [-5, -3, -4, 0, 2, 3, 1, 324, 321]
def Sort4(Arr):
for i in range(len(Arr) - 1):
temp = Arr[i]
value = Minimum(Arr, i, len(Arr))
Arr[i] = Arr[value]
Arr[value] = temp
Sort4(x)
print(x)
結果:
[-5, -4, -3, 0, 1, 2, 3, 321, 324]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/506630.html
標籤:Python 数组 python-3.x 排序
