Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- int main(){
- int a[100], n, k;
- printf("Enter no of elements of array");
- scanf("%d",&n);
- printf("Enter elements of array");
- for(k=0;k<n;k++){
- scanf("%d",&a[k]);}
- mergesort(a,0,n-1);
- for(k=0;k<n;k++){
- printf("%d",a[k]);}
- }
- void mergesort(int* a,int i,int j){
- int mid;
- if(i==j)
- return;
- else{
- mid=(i+j)/2;
- mergesort(a,i,mid);
- mergesort(a,mid+1,j);
- join(a,i,j);
- }
- }
- void join(int* a,int i,int j) {
- int mid,middle,k,l;
- int c[100];
- mid=(i+j)/2 + 1;
- middle=mid;
- for(k=i;k<=j;k++){
- if (a[i] <=mid)
- {
- c[k]=a[i];
- i++;
- }
- else
- {
- c[k]=a[mid];
- mid++;
- }
- if(i==middle)
- {
- for(l=k+1;l<=j;l++){
- c[l]=a[mid];
- mid++;
- }
- break;
- }
- else
- if(mid==j+1)
- {
- for(l=k+1;l<=j;l++){
- c[l]=a[i];
- i++;
- }
- break;
- }
- }
- for(k=0;k<=j;k++){
- a[k]=c[k];
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement