QuickSort
実行の次の実装無限ループにクイックソート:無限ループ
def partition(arr, lo, hi):
pivot = lo
for i in range(lo+1, hi+1):
if arr[i] <= arr[lo]:
pivot += 1
arr[i], arr[pivot] = arr[pivot], arr[i]
arr[lo], arr[pivot] = arr[pivot], arr[lo]
return pivot
def quickSort(arr, lo=0, hi=None):
if not hi: hi = len(arr) - 1
if lo >= hi: return
pivot = partition(arr, lo, hi)
quickSort(arr, lo, pivot-1)
quickSort(arr, pivot+1, hi)
arr = [5,3,2,-9,1,6,0,-1,9,6,2,5]
quickSort(arr)
print(arr)
私はpartition
機能が犯人であると推定。間違いを理解することはできません。
ありがとうございました
あなたは無限再帰を止める何らかの方法を実装せずに 'quicksort()'の中から 'quicksort()'を呼び出しています。 – RobertR
彼はすでにこの終了条件を満たしています。 – prabodhprakash
あなたはそれが役に立つと分かった場合、正しいとマークしてください。 – prabodhprakash