Professional Documents
Culture Documents
high ub
m (low + high)/2
if(x=A[m])
return true
break
else if (x<A[m])
BinSearch( x,low,mid-1)
else
BinSearch(x, mid,+1,high) }
#include<stdio.h>
#include<conio.h>
int a[10],m;
int binsearch(int num,int lb,int ub)
{ int low,high,flag=0;
low=lb;
high=ub;
if(low<=high)
{ m=(low+high)/2;
if(num==a[m])
{ flag=1;
return flag; }
else if(num<a[m])
{ return binsearch(num,low,m-1); }
else
{ return binsearch(num,m+1,high); }
}
else
return flag; }
void main()
{int i,n,num,lb,ub,mid,res=0;
clrscr();
printf("Enter the size of the elements: ");
scanf("%d",&n);
printf("Enter the numbers in sorted order: ");
for(i=0;i<n;i++)
{ scanf("%d",&a[i]); }
printf("Enter the element to search: ");
scanf("%d",&num);
lb=0;
ub=n-1;
res=binsearch(num,lb,ub);
if(res==0)
printf("Number not found!!!");
else
printf("Number found at position %d",m+1);
getch();}
Output:-
left[i] A[i]
for i mid to (n-1)
right[i-mid] A[i]
MergeSort(left)
MergeSort(right)
Merge(left,right,A) }
#include<conio.h>
#include<stdio.h>
int a[10],size;
void mergesort(int a[],int);
void merge(int l[],int r[],int,int,int a[]);
void main()
{ int i;
clrscr();
printf("\nEnter the size of the array: ");
scanf("%d",&size);
printf("\nEnter the elements of the array: ");
for(i=0;i<size;i++)
{scanf("%d",&a[i]); }
mergesort(a,size);
printf("Sorted array after applying Merge Sort: ");
for(i=0;i<size;i++)
{printf("%d\t",a[i]); }
getch();}
void mergesort(int a[],int n)
{int left[50],ln,right[50],rn,mid,i;
if(n<2)
return;
mid=n/2;
ln=mid;
rn=n-mid;
for(i=0;i<=mid-1;i++)
{left[i]=a[i]; }
for(i=mid;i<=n-1;i++)
{right[i-mid]=a[i]; }
mergesort(left,ln);
mergesort(right,rn);
merge(left,right,ln,rn,a);}
void merge(int left[],int right[],int ln,int rn,int a[])
{int i,j,k;
i=0;
j=0;
k=0;
while(i<ln&&j<rn)
{if(left[i]<=right[j])
{ a[k]=left[i];
i=i+1;}
else
{a[k]=right[j];
j=j+1;}
k=k+1;
}while(i<ln)
{a[k]=left[i];
i=i+1;
k=k+1;
}
while(j<rn)
{
a[k]=right[j];
j=j+1;
k=k+1;
}
}