我正在嘗試使用分而治之策略開發合并??排序演算法。然而,在除法部分,我收到一個遞回錯誤,我已經超過了遞回。這是我所擁有的:
c = [3,5,4,2,1,6,7]
def mergesort(nums):
if len(nums) == 1:
return
n = len(nums)//2
a = c[:n]
b = c [n:]
mergesort(a)
mergesort(b)
i = 0
j = 0
k = 0
mergesort(c)
uj5u.com熱心網友回復:
這是因為您正在修改全域c串列而不是引數nums串列(這是您的退出條件)。
c = [3,5,4,2,1,6,7]
def mergesort(nums):
if len(nums) == 1:
return
n = len(nums)//2
a = nums[:n] # Don't use c[:n] here
b = nums[n:] # Don't use c[n:] here
print ('nums: {}\n{}\n{}\n\n'.format(nums, a, b))
mergesort(a)
mergesort(b)
mergesort(c)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/388363.html
上一篇:如何清除JFrame?
下一篇:找到通過無向無環圖的所有路徑
