0% found this document useful (0 votes)
6 views

merge sort

The document contains a C implementation of the merge sort algorithm, which includes functions for merging two halves of an array and recursively sorting the array. It defines the main function to initialize an array, print the unsorted array, perform the merge sort, and print the sorted array. There are some typographical errors in the print statements that need correction.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

merge sort

The document contains a C implementation of the merge sort algorithm, which includes functions for merging two halves of an array and recursively sorting the array. It defines the main function to initialize an array, print the unsorted array, perform the merge sort, and print the sorted array. There are some typographical errors in the print statements that need correction.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Code: merge sort

#include <stdio.h>

#include <stdlib.h>

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++)

prin ("%d ", A[i]);

prin ("\n");

int main()

int arr[] = { 12, 11, 13, 5, 6, 7 };

int arr_size = sizeof(arr) / sizeof(arr[0]);

prin ("Given array is \n");

printArray(arr, arr_size);

mergeSort(arr, 0, arr_size - 1);

prin ("\nSorted array is \n");

printArray(arr, arr_size);

return 0;

Output:

You might also like