gpt4 book ai didi

python - 为什么 QuickSort 的这种实现不起作用?

转载 作者:行者123 更新时间:2023-12-01 07:49:17 26 4
gpt4 key购买 nike

我尝试将快速排序代码从 Java 翻译为 Python,但没有成功。有人能告诉我问题出在哪里吗?我得到了“相比之下超出了最大递归深度”,但在我的示例中,我只想订购少于 10 个整数,所以我认为这不是真正的问题...

def help(array, low, high):
pivot = array[low]
fromhigh = high
fromlow = low
while True:
while(array[fromhigh]>pivot):
fromhigh = fromhigh-1
while(array[fromlow]<pivot):
fromlow = fromlow+1
if(fromlow<fromhigh):
array[fromlow], array[fromhigh] = array[fromhigh], array[fromlow]
else:
return fromhigh


def quickSort(array, low, high):
if (low<=high):
pivot = help(array, low, high)
quickSort(array, low, pivot)
quickSort(array, pivot + 1, high)


#Testarray
array = [10, 7, 2 , 8, 9, 1, 5, 11, 13]
n = len(array)
quickSort(array, 0, n-1)
print("Sorted Array:")
for i in range(n):
print("%d" % array[i]),

最佳答案

如果添加 print(low, high)在您的 quickSort 的开头函数,你会注意到它打印 0 0一直到崩溃为止。

if那里的条件不正确。而不是low <= high应该是low < high ,因为您不想继续对单元素子数组进行排序。

关于python - 为什么 QuickSort 的这种实现不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56308016/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com