Advertisement
michalkowalczyk

MergeSort

Dec 2nd, 2018
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.15 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on Sun Dec  2 20:29:31 2018
  4.  
  5. @author: micha
  6. """
  7.  
  8. A=[]
  9. from random import randint    
  10. for i in range(0,100):
  11.     A.append(randint(1,100))    #dodawnie losowanyc elemetow
  12.    
  13. print(A)
  14. print()
  15. #from math import floor
  16. def MergeSort(A,p,k):
  17.     if(p<k):
  18.         q=(p+k)//2
  19.         #q = floor((p+k)/2)
  20.         MergeSort(A,p,q)
  21.         MergeSort(A,q+1,k)
  22.         Merge(A,p,q,k)
  23.        
  24. def Merge(A,p,q,k):
  25.     n1=q-p+1
  26.     n2=k-q
  27.     L=[0]*(n1)
  28.     R=[0]*(n2)
  29.     """
  30.     L=[]
  31.     R=[]
  32.     """
  33.    
  34.  
  35.     """for i in range(0,n1):
  36.        L.append(A[p+i-1])
  37.    for j in range(0,n2):
  38.        R.append(A[q+j+1])
  39.       """
  40.     for i in range(0,n1):
  41.         L[i]=A[p+i]
  42.     for j in range(0,n2):
  43.        R[j]=A[q+1+j]
  44.    
  45.    
  46.     i=j=0
  47.     z=p
  48.     while(i<len(L) and j<len(R)):
  49.         if(L[i]<R[j]):
  50.             A[z]=L[i]
  51.             i+=1
  52.            
  53.         else:
  54.             A[z]=R[j]
  55.             j+=1
  56.         z+=1
  57.     while(i<len(L)):
  58.         A[z]=L[i]
  59.         i+=1
  60.         z+=1
  61.     while(j<len(R)):
  62.         A[z]=R[j]
  63.         j+=1
  64.         z+=1
  65.        
  66. MergeSort(A,0,len(A)-1)
  67. print(A)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement