Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
14 views7 pages

Include

Uploaded by

vanjareguddu4
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views7 pages

Include

Uploaded by

vanjareguddu4
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 7

#include <stdio.

h>

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

int n1 = mid - left + 1, n2 = right - mid;

int L[n1], R[n2];

for (int i = 0; i < n1; i++) L[i] = arr[left + i];

for (int i = 0; i < n2; i++) R[i] = arr[mid + 1 + i];

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

while (i < n1 && j < n2) arr[k++] = (L[i] <= R[j]) ? L[i++] : R[j++];

while (i < n1) arr[k++] = L[i++];

while (j < n2) arr[k++] = R[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);

void printArray(int arr[], int size) {

for (int i = 0; i < size; i++) printf("%d ", arr[i]);

printf("\n");
}

int main() {

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

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

printf("Original array: ");

printArray(arr, size);

mergeSort(arr, 0, size - 1);

printf("Sorted array: ");

printArray(arr, size);

return 0;

}
#include <stdio.h>

#include <stdlib.h>

struct Node {

int data;

struct Node* next;

};

void reverse (struct node *head)

struct node *p=NULL, *q=NULL, *r=NULL;

p = head;

while (p != null)

r = q;

q = p;

p = p -> next;

q -> next = r;

head = q;

void print_rev (struct node *head)

if(head!=NULL)

print_rev(head->link);

printf("%d\t", head->data);

}
int main() {

struct Node* head = NULL;

push(&head, 40);

push(&head, 30);

push(&head, 20);

push(&head, 10);

printf("Reversed list: \n");

print_rev(head);

return 0;

void reverse (struct node *head)

struct node *p=NULL, *q=NULL, *r=NULL;

p = head;

while (p != null)
{

r = q; q = p;

p = p -> next;

q -> next = r;

head = q;

}
#include <stdio.h>

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

int n1 = mid - left + 1, n2 = right - mid;

int L[n1], R[n2];

for (int i = 0; i < n1; i++) L[i] = arr[left + i];

for (int j = 0; j < n2; j++) R[j] = arr[mid + 1 + j];

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

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

arr[k++] = (L[i] <= R[j]) ? L[i++] : R[j++];

while (i < n1) arr[k++] = L[i++];

while (j < n2) arr[k++] = R[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);

void printArray(int arr[], int size) {


for (int i = 0; i < size; i++) printf("%d ", arr[i]);

printf("\n");

int main() {

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

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

printf("Original array: ");

printArray(arr, size);

mergeSort(arr, 0, size - 1);

printf("Sorted array: ");

printArray(arr, size);

return 0;

You might also like