python - Function output not printing? -
trying see whether functions work, tried printing out see whether random list sorted, nothing seems printed. how measure time takes sort list out?
import random import time def mergesort(mylist): if len(mylist) <= 1: return mylist mid = len(mylist) // 2 left = mergesort(mylist[:mid]) right = mergesort(mylist[mid:]) return merge(left,right) def merge(left,right): if not left: return right if not right: return left if left[0] < right[0]: return [left[0]]+merge(left[1:],right) else: return [right[0]]+merge(left,right[1:]) newlist=[] in range(100): newlist.append(random.randint(1,1000)) val = mergesort(newlist) print (val) nothing outputted, why?
you blew indentation. here's correct version:
def mergesort(mylist): if len(mylist) <= 1: return mylist mid = len(mylist) // 2 left = mergesort(mylist[:mid]) right = mergesort(mylist[mid:]) return merge(left,right) in version posted, have main body of routine still inside if statement, after return. means can never execute. if look, should find program did print something, value none.
Comments
Post a Comment