import random # divide and conquer to find max and min values in list # shows how a pair of vals (x,y) can be returned def find_max_min2(list, first, last): if first == last: # one item? it's both max and min maxval = minval = list[first] elif first < last: mid = (first+last)/2 # next two lines assign 2-tuple returned to two variables (max_left,min_left) = find_max_min2(list, first, mid) (max_right,min_right) = find_max_min2(list, mid+1, last) maxval = max(max_left, max_right) # max() does 1 comparison minval = min(min_left, min_right) # min() does 1 comparison else: print "uh oh, didn't expect first > last: ", first, last return (maxval,minval) # returns two values as a 2-tuple # creates a random list def random_list(n, min=0, max=9): list = [] # empty list for i in range(n): list.append( random.randint(min, max) ) return list def main(): # list = input('Enter the list: ') list = random_list(8, -9, 9) print list # variable pairs can be assigned values (maxval, minval) = find_max_min2(list, 0, len(list)-1) print maxval, minval return main()