Rotate your phone or change to desktop for better experience

Rotate your phone or change to desktop for better experience

8. Write a program to implement Merge sort algorithm for sorting a list of integers in ascending order || DAA

#include <stdio.h> 

void merge(int arr[], int left, int mid, int right) { 

int n1 = mid - left + 1; 

int n2 = right - mid; 

int leftArr[n1], rightArr[n2]; 

for (int i = 0; i < n1; i++) { 

leftArr[i] = arr[left + i]; 

for (int j = 0; j < n2; j++) { 

rightArr[j] = arr[mid + 1 + j]; 

int i = 0, j = 0, k = left; 

while (i < n1 && j < n2) { 

if (leftArr[i] <= rightArr[j]) { 

arr[k++] = leftArr[i++]; 

} else { 

arr[k++] = rightArr[j++]; 

while (i < n1) { 

arr[k++] = leftArr[i++]; 

while (j < n2) { 

arr[k++] = rightArr[j++]; 

}void mergeSort(int arr[], int left, int right) { 

if (left < right) { 

int mid = left + (right - left) / 2; 

mergeSort(arr, left, mid); 

mergeSort(arr, mid + 1, right); 

merge(arr, left, mid, right); 

int main() { 

int n; 

printf("Enter the number of elements in the array: "); 

scanf("%d", &n); 

int arr[n]; 

printf("Enter the elements of the array:\n"); 

for (int i = 0; i < n; i++) { 

scanf("%d", &arr[i]); 

mergeSort(arr, 0, n - 1); 

printf("Sorted array using Merge Sort:\n"); 

for (int i = 0; i < n; i++) { 

printf("%d ", arr[i]); 


Post a Comment

0 Comments