1 | #include<stdio.h> | ||||
2 | void Merge_Sort(int a[],int n); | ||||
3 | void mpass(int a[],int low,int high); | ||||
4 | void msort(int a[],int low,int mid,int high); | ||||
5 | int main() | ||||
6 | { | ||||
7 | int a[10]; | ||||
8 | int i,j,temp,n,key; | ||||
9 | printf("Enter the no.of elements : "); | ||||
10 | scanf("%d",&n); | ||||
11 | for(i=0;i<n;i++) | ||||
12 | { | ||||
13 | printf("Enter a[%d] element : ",i); | ||||
14 | scanf("%d",&a[i]); | ||||
15 | } | ||||
16 | printf("Before Sorting array elements are : "); | ||||
17 | for(i=0;i<n;i++) | ||||
18 | { | ||||
19 | printf("%d ",a[i]); | ||||
20 | } | ||||
21 | Merge_Sort(a,n); | ||||
22 | printf("\nafter Sorting array elements are : "); | ||||
23 | for(i=0;i<n;i++) | ||||
24 | { | ||||
25 | printf("%d ",a[i]); | ||||
26 | } | ||||
27 | } | ||||
28 | void Merge_Sort(int a[],int n) | ||||
29 | { | ||||
30 | mpass(a,0,n-1); | ||||
31 | } | ||||
32 | void mpass(int a[],int low,int high) | ||||
33 | { | ||||
34 | int mid; | ||||
35 | if(low<high) | ||||
36 | { | ||||
mid=(low+high)/2; | |||||
mpass(a,low,mid); | |||||
mpass(a,mid+1,high); | |||||
msort(a,low,mid,high); | |||||
} | |||||
} | |||||
void msort(int a[],int low,int mid,int high) | |||||
{ | |||||
int n,i,j,k; | |||||
int b[20]; | |||||
n=low; | |||||
i=low; | |||||
j=mid+1; | |||||
while(i<=mid&&j<=high) | |||||
{ | |||||
if(a[i]<=a[j]) | |||||
{ | |||||
b[n]=a[i]; | |||||
i++; | |||||
} | |||||
else | |||||
{ | |||||
b[n]=a[j]; | |||||
j++; | |||||
} | |||||
n++; | |||||
} | |||||
if(i>mid) | |||||
{ | |||||
for(k=j;k<=high;k++) | |||||
{ | |||||
b[n]=a[k]; | |||||
n++; | |||||
} | |||||
} | |||||
else | |||||
{ | |||||
for(k=i;k<=mid;k++) | |||||
{ | |||||
b[n]=a[k]; | |||||
n++; | |||||
} | |||||
} | |||||
for(k=low;k<=high;k++) | |||||
a[k]=b[k]; | |||||
} | |||||
OUTPUT: | |||||
Enter the no.of elements : 5 | |||||
Enter a[0] element : 8 | |||||
Enter a[1] element : 4 | |||||
Enter a[2] element : 6 | |||||
Enter a[3] element : 2 | |||||
Enter a[4] element : 3 | |||||
Before Sorting array elements are : 8 4 6 2 3 | |||||
after Sorting array elements are : 2 3 4 6 8 |
C Program for Merge Sort Arrange a List of Integers in Ascending order
Share to other apps