1
こんにちは、私はPythonを初めて使いました。クイックソートアルゴリズムのために以下のコードを実装しました。トレースバックがあります。 "IndexError:リストのインデックスが範囲外です"。python3クイックソートリストのインデックス範囲外
誰でも助けてください。私は一晩中苦労した!
ありがとうございます!エラーが、あなたの並べ替えロジックが間違っている固定
def quicksort(array,l,r):
n = len(array)
if n == 1 or n == 0:
return array
else:
p = array[l]
i = l + 1
for j in range(l+1, r):
if array[j] < p:
array[i], array[j] = array[j], array[i]
i = i + 1
array[l], array[i-1] = array[i-1], array[l]
array[l:i-1] = quicksort(array[l:i-1],l,i-1)
array[i:r] = quicksort(array[i:r],i,r)
return array
testarray = [1,3,4,5,2]
sortedarray = quicksort(testarray,0,5)
が考えてR:[I:R]クイックソート(配列[Iを= ]、i、r) "から"配列[i:r] =クイックソート(配列[i:r]、l、ri) "というコードが動作します。同じ問題に遭遇する可能性のある人のために。 –