Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- a = [6,5,4,3,2,1]
- print 'unsorted:',a
- z = len(a)
- tmp = range(len(a))
- def sort(a,tmp):
- width=1
- while(width<z):
- i=0
- while(i<z):
- left =i
- middle = i+width
- right = i+2*width
- merge(a,left,middle,right,tmp)
- i = i+2*width
- width=width*2
- print '\n'
- def merge(a,iLeft,iMiddle,iRight,tmp):
- i = iLeft
- j = iMiddle
- k = iLeft
- print iLeft,iMiddle,iRight,'[',i,j,k,']'
- #print i ,j, k,'\n\n'
- while(i<iMiddle and j<iRight):
- if(i<iMiddle and j<iRight):
- if(a[i]<a[j]):
- tmp[k]=a[i]
- i += 1
- k += 1
- else:
- tmp[k]=a[j]
- j += 1
- k += 1
- elif (i==iMiddle):
- tmp[k] = a[j]
- j += 1
- k += 1
- elif (j==iRight):
- tmp[k]= a[i]
- i += 1
- j += 1
- sort(a,tmp)
- print 'Sorted Array:',tmp
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement