Saturday, 27 August 2022

Merge Sort in C Language

 // merge sort...


#include<stdio.h>

#include<conio.h>


void main()

{

int no, i, j, l=0, mid, r, count=-1, temp, flag=0;

int arr[20], a[20], b[20];

clrscr();


printf("how many element you want to enter: ");

scanf("%d",&no);

r = no-1;


printf("\nenter element one by one: \n");

for(i=0; i<no; i++)

{

printf("enter %d element: ",i+1);

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

}


mid = (l+r) / 2;

for(i=0; i<=mid; i++)

{

a[i] = arr[i];

count++;

}

for(i=0; i<mid; i++)

{

flag=0;

for(j=0; j<mid-i; j++)

{

if(a[j] > a[j+1])

{

flag=1;

temp = a[j];

a[j] = a[j+1];

a[j+1] = temp;

}

}

if(flag==0)

{

break;

}

}


for(i=0; i<r-count; i++)

{

b[i] = arr[i+mid+1];

}


for(i=0; i<r-count-1; i++)

{

flag=0;

for(j=0; j<r-count-1-i; j++)

{

if(b[j] > b[j+1])

{

flag=1;

temp = b[j];

b[j] = b[j+1];

b[j+1] = temp;

}

}

if(flag==0)

{

break;

}

}


l=0; r=0; i=0;

while((l <= mid+1) && (r <= no-1))

{

if(b[r] < a[l])

{

if(r-1 != no-1)

{

arr[i] = b[r];

i++; r++;

}

else if((r-1 == no-1) && (l != mid))

{

arr[i] = a[l];

i++; l++;

}

}

else if(a[l] < b[r])

{

if(l-1 != mid)

{

arr[i] = a[l];

i++; l++;

}

else if((l-1 == mid) && (r-1 != no-1))

{

arr[i] = b[r];

i++; r++;

}

}

else

{

arr[i] = a[l];

i++; l++;

arr[i] = b[r];

i++; r++;

}

}


printf("\n\nsorted element:");

for(i=0; i<no; i++)

{

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

}

getch();

}

No comments:

Post a Comment

python programs

1. sum of two number