Skip to content

Commit 371f336

Browse files
authored
Add files via upload
1 parent d36d992 commit 371f336

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

merge-sort.c

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
int X[10]={53,17,20,33,28,14,29,15,77,24};
2+
int temp[];
3+
4+
void Merge(int A[], int temp[], int left, int mid, int right){
5+
int i, left_end, size, temp_pos;
6+
left_end = mid-1;
7+
temp_pos = left;
8+
size = right - left +1;
9+
while((left<=left_end)&&(mid<=right)){
10+
if(A[left]<=A[mid]){
11+
temp[temp_pos]=A[left];
12+
temp_pos=temp_pos+1;
13+
left=left+1;
14+
}
15+
else{
16+
temp[temp_pos]=A[mid];
17+
temp_pos=temp_pos+1;
18+
mid=mid+1;
19+
}
20+
}
21+
22+
while(left<=left_end){
23+
temp[temp_pos]=A[left];
24+
left=left+1;
25+
temp_pos=temp_pos+1;
26+
}
27+
28+
while(mid<=right){
29+
temp[temp_pos]=A[mid];
30+
mid=mid+1;
31+
temp_pos=temp_pos+1;
32+
}
33+
34+
for(i=0;i<=size;i++){
35+
A[right]=temp[right];
36+
right=right-1;
37+
}
38+
}
39+
40+
41+
void Mergesort(int A[], int temp[], int left, int right){
42+
int mid;
43+
if(right>left){
44+
mid = (right+left)/2;
45+
Mergesort(A,temp,left,mid);
46+
Mergesort(A,temp,mid+1,right);
47+
Merge(A,temp,mid+1,right);
48+
}
49+
}
50+
51+
Mergesort(X,temp,0,9);
52+
printf("%d",X);

0 commit comments

Comments
 (0)