基本上,我的问题是关于如何运行这段代码?使用分治法从给定列表中查找第二小的数字。我试过打印……但它什么也没给我。只是想看看这段代码是如何工作的。很抱歉这个简单的问题,在 Python 中是全新的。
问问题
60 次
1 回答
0
好吧,只需使用函数调用来运行它,然后print
打印它:
def two_min(arr):
n = len(arr)
if n==2: # Oops, we don't consider this as comparison, right?
if arr[0]<arr[1]: # Line 1
return (arr[0], arr[1])
else:
return (arr[1], arr[0])
(least_left, sec_least_left) = two_min(arr[0:n/2])
(least_right, sec_least_right) = two_min(arr[n/2:])
if least_left < least_right: # Line 2
least = least_left
if least_right < sec_least_left: # Line 3
return (least, least_right)
else:
return (least, sec_least_left)
else:
least = least_right
if least_left < sec_least_right: # Line 4
return (least, least_left)
else:
return (least, sec_least_right)
print two_main([12,2])
如果您想知道这是如何工作的,可以查看在线 python 可视化工具。链接。
于 2013-10-31T05:49:21.980 回答