0

Basically, my question is about how to run this code? Finding the second smallest number from the given list using divide-and-conquer. I tried with print..But it gives me nothing. Just wanna see how this code works. Sorry for simple question, totally New in Python.

Community
  • 1
  • 1
Katty
  • 19
  • 2
  • add a line "print two_min([...])" where you call the method. "totally new" is not an excuse for not thinking. –  Oct 31 '13 at 05:50

1 Answers1

1

Well, just use a function call to run it, and a print to print it:

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])

If you'd like to know how this works, you can take a look at the online python visualizer. Link.

Games Brainiac
  • 80,178
  • 33
  • 141
  • 199