Advertisement
urbanslug

mergesort

Jul 15th, 2013
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.23 KB | None | 0 0
  1. #!/usr/bin/python
  2.  
  3. list  = [6,7,5,8,3,1,2,4]
  4.  
  5. def divide(list):
  6.     if len(list) <= 1:
  7.         return list
  8.     else:
  9.         mid = int(len(list)/2)
  10.         flist = divide(list [:mid])
  11.         llist = divide(list [mid:])
  12.         return merge(flist,llist)
  13.  
  14.  
  15. def merge(flist,llist):
  16.     i = j = 0; list =[]
  17.     while i<len(flist) and j < len(llist):
  18.        if flist[i] < llist[j]:
  19.             list.append(flist[i])
  20.             i += 1
  21.            else:
  22.             list.append(llist[j])
  23.             j += 1
  24. def main(list):
  25.     return divide(list)
  26.  
  27. print main(list)
  28.  
  29.  
  30.  
  31. ################## END of CODE ###################
  32. #====================================================================================================#
  33.  
  34. The output is:
  35. Traceback (most recent call last):
  36.   File "./code/python/personal/merge sort", line 27, in <module>
  37.     print main(list)
  38.   File "./code/python/personal/merge sort", line 25, in main
  39.     return divide(list)
  40.   File "./code/python/personal/merge sort", line 10, in divide
  41.     flist = divide(list [:mid])
  42.   File "./code/python/personal/merge sort", line 12, in divide
  43.     return merge(flist,llist)
  44.   File "./code/python/personal/merge sort", line 17, in merge
  45.     while i<len(flist) and j < len(llist):
  46. TypeError: object of type 'NoneType' has no len()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement