Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- void Merge(int s[],int p,int q,int r)
- {
- int n1,n2,i,j,k;
- n1=q-p+1;
- n2=r-q;
- int L[100],R[100];
- for(i=1;i<=n1;i++)
- {
- L[i]=s[p+i-1];
- }
- for(j=1;j<=n2;j++)
- {
- R[j]=s[q+j];
- }
- L[n1+1]=3566121;
- R[n2+1]=3455154;
- i=1;
- j=1;
- for(k=p; k<=r; k++)
- {
- if(L[i] <= R[j])
- {
- s[k]=L[i];
- i++;
- }
- else
- {
- s[k]=R[j];
- j++;
- }
- }
- }
- void MergeSort(int a[],int p,int r)
- {
- int q,s;
- if(p<r)
- {
- q= ((2*p)+r)/3;
- s=((2*r)+p)/3;
- MergeSort(a,p,q);
- MergeSort(a,q+1,s);
- MergeSort(a,s+1,r);
- Merge(a,p,q,s);
- Merge(a,p,s,r);
- }
- }
- int main()
- {
- int m[1000],i,n;
- cout<<"Enter Size: ";
- cin>>n;
- cout<<"\nEnter the numbers for sorting: ";
- for(i=1;i<=n;i++)
- {
- cin>>m[i];
- }
- MergeSort(m,1,n);
- cout<<endl;
- cout<<"The three way Merge Sort is: ";
- for(i=1;i<=n;i++)
- {
- cout<< " "<<m[i];
- }
- cout<<endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement