Advertisement
Guest User

MergeSort - Bottom Up - Python

a guest
May 22nd, 2016
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.33 KB | None | 0 0
  1. a = [6,5,4,3,2,1]
  2. print 'unsorted:',a
  3. z = len(a)
  4. tmp = range(len(a))
  5. def sort(a,tmp):
  6. width=1
  7. while(width<z):
  8. i=0
  9. while(i<z):
  10. left =i
  11. middle = i+width
  12. right = i+2*width
  13. merge(a,left,middle,right,tmp)
  14. i = i+2*width
  15. width=width*2
  16. print '\n'
  17. def merge(a,iLeft,iMiddle,iRight,tmp):
  18. i = iLeft
  19. j = iMiddle
  20. k = iLeft
  21. print iLeft,iMiddle,iRight,'[',i,j,k,']'
  22. #print i ,j, k,'\n\n'
  23.  
  24. while(i<iMiddle and j<iRight):
  25. if(i<iMiddle and j<iRight):
  26. if(a[i]<a[j]):
  27. tmp[k]=a[i]
  28. i += 1
  29. k += 1
  30. else:
  31. tmp[k]=a[j]
  32. j += 1
  33. k += 1
  34.  
  35. elif (i==iMiddle):
  36. tmp[k] = a[j]
  37. j += 1
  38. k += 1
  39. elif (j==iRight):
  40. tmp[k]= a[i]
  41. i += 1
  42. j += 1
  43.  
  44. sort(a,tmp)
  45. print 'Sorted Array:',tmp
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement