Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- void merge(int A[], int l, int mid, int h) {
- int i=l,j=mid+1,k=0;
- int tmp[h-l+1];
- while (i <= mid && j <= h) {
- if(A[i]<=A[j]) tmp[k++]=A[i++];
- else tmp[k++]=A[j++];
- }
- while(i<=mid) tmp[k++]=A[i++];
- while(j<=h) tmp[k++]=A[j++];
- for(int x=l;x<=h;x++) A[x]=tmp[x-l];
- }
- void merge_sort(int A[], int l, int h) {
- if(l<h){
- int mid=(l+h)/2;
- merge_sort(A,l,mid);
- merge_sort(A,mid+1,h);
- merge(A,l,mid,h);
- }
- }
- int main() {
- int n;
- printf("Enter number of elements: ");
- scanf("%d", &n);
- int A[n];
- printf("Enter the elements: ");
- for (int i = 0; i < n; i++) {
- scanf("%d", &A[i]);
- }
- merge_sort(A, 0, n-1);
- printf("Sorted array: ");
- for (int i = 0; i < n; i++) {
- printf("%d ", A[i]);
- }
- printf("\n");
- return 0;
- }
Add Comment
Please, Sign In to add comment