DS practical 8
DS practical 8
#include <stdio.h>
struct Employee
{
char employee_name[50];
int emp_no;
int emp_salary;
};
int count=0;
int binarySearch(int num,struct Employee ar[],int n)
{
int mid;
int l=n-1,f=0;
while(f<=l)
{
count++;
mid=(f+l)/2;
if(ar[mid].emp_no==num)
return mid;
else if(ar[mid].emp_no<num)
{
f=mid+1;
}
else if(ar[mid].emp_no>num)
{
l=mid-1;
}
}
return -1;
}
int main()
{
int n,i,number;
printf("Enter number of employees: ");
scanf("%d",&n);
struct Employee emp[n];
fflush(stdin);
printf("Enter information: \n");
for(i=0;i<n;i++)
{
printf("Employee %d:\nName:",i+1);
scanf("%s",emp[i].employee_name);
while(getchar()!='\n');
printf("Emp no: ");
scanf("%d",&emp[i].emp_no);
printf("Salary: ");
scanf("%d",&emp[i].emp_salary);
}
printf("Enter Emp no to be searched: ");
scanf("%d",&number);
int ans=binarySearch(number,emp,n);
printf("The Employee searched is at position: %d",ans);
printf("Number of comparisons performed is %d",count);
return 0;
}
Comments
Post a Comment