-1

基本上,我的问题是关于如何运行这段代码?使用分治法从给定列表中查找第二小的数字。我试过打印……但它什么也没给我。只是想看看这段代码是如何工作的。很抱歉这个简单的问题,在 Python 中是全新的。

4

1 回答 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 回答