0% found this document useful (0 votes)
21 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)
21 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

#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