| #include <stdio.h> | |
| void merge(int a[], int f, int mid, int l){ | |
| int i = f, j = mid + 1, k = 0, b[20]; | |
| while(i <= mid && j <= l){ | |
| if(a[i] <= a[j]){ | |
| b[k++] = a[i++]; | |
| } else if(a[i] > a[j]){ | |
| b[k++] = a[j++]; | |
| } | |
| } | |
| while(i <= mid){ | |
| b[k++] = a[i++]; | |
| } | |
| while(j <= l){ | |
| b[k++] = a[l++]; | |
| } | |
| for(i = f, k = 0; i <= l; i++, k++){ | |
| a[i] = b[k]; | |
| } | |
| } | |
| void merge_sort(int a[], int f, int l){ | |
| int mid; | |
| if(f < l){ | |
| mid = (f + l) / 2; | |
| merge_sort(a, f, mid); | |
| merge_sort(a, mid + 1, l); | |
| merge(a, f, mid, l); | |
| } | |
| } | |
| int main(){ | |
| int i; | |
| //Worst Case xD | |
| int a[] = {4,3,2,1,0,-1,-2,-3,-4}; | |
| int n = sizeof(a)/ sizeof(a[0]); | |
| merge_sort(a,0, n-1); | |
| printf("The sorted array is: \n"); | |
| for(i = 0; i < n; i++){ | |
| printf("%d ", a[i]); | |
| } | |
| return 0; | |
| } |
Friday, 4 November 2016
Program 5 - Merge Sort
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment