From fb37b4d688834c5b38e07a4195b187d87c409e90 Mon Sep 17 00:00:00 2001 From: Sudhanshu Mishra Date: Fri, 5 Oct 2018 10:03:00 +0530 Subject: [PATCH] Add files via upload --- merge_sort/Python/merge_sort.c | 75 ++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 merge_sort/Python/merge_sort.c diff --git a/merge_sort/Python/merge_sort.c b/merge_sort/Python/merge_sort.c new file mode 100644 index 00000000..fdad08c3 --- /dev/null +++ b/merge_sort/Python/merge_sort.c @@ -0,0 +1,75 @@ +#include +void merge(int arr[], int l, int m, int r) +{ + int i, j, k; + int n1 = m - l + 1; + int n2 = r - m; + int L[n1], R[n2]; + for (i = 0; i < n1; i++) + L[i] = arr[l + i]; + for (j = 0; j < n2; j++) + R[j] = arr[m + 1+ j]; + + i = 0; + j = 0; + k = l; + while (i < n1 && j < n2) + { + if (L[i] <= R[j]) + { + arr[k] = L[i]; + i++; + } + else + { + arr[k] = R[j]; + j++; + } + k++; + } + while (i < n1) + { + arr[k] = L[i]; + i++; + k++; + } + while (j < n2) + { + arr[k] = R[j]; + j++; + k++; + } +} +void mergeSort(int arr[], int l, int r) +{ + if (l < r) + { + int m = l+(r-l)/2; + + mergeSort(arr, l, m); + mergeSort(arr, m+1, r); + + merge(arr, l, m, r); + } +} +void printArray(int A[], int size) +{ + int i; + for (i=0; i < size; i++) + printf("%d ", A[i]); + printf("\n"); +} +int main() +{ + int arr[] = {12, 11, 13, 5, 6, 7}; + int arr_size = sizeof(arr)/sizeof(arr[0]); + + printf("Given array is \n"); + printArray(arr, arr_size); + + mergeSort(arr, 0, arr_size - 1); + + printf("\nSorted array is \n"); + printArray(arr, arr_size); + return 0; +}