#include<stdio.h>
#include<conio.h>
#define MAX 20
int interpol(int a[],int n,int val);
int main()
{
int pos,i,val,a[MAX],n;
printf("Enter number of value \n");
scanf("%d",&n);
printf("Enter value of each element\n");
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
printf("Enter value to be searched\n");
scanf("%d",&val);
pos = interpol(a,n,val);
if(pos ==-1)
{
printf("Element not found\n");
}
else
{
printf("Element found at position %d",(pos+1));
}
getch();
return 0;
}
int interpol(int a[],int n,int val)
{
int mid,low =0,high = n-1;
while(low<=high)
{
mid = low + (high - low)*((val - a[low])/(a[high] - a[low]));
if(val == a[mid])
{
return mid;
}
if(val<a[mid])
{
high = mid - 1;
}
else
{
low = mid + 1;
}
}
return -1;
}
#include<conio.h>
#define MAX 20
int interpol(int a[],int n,int val);
int main()
{
int pos,i,val,a[MAX],n;
printf("Enter number of value \n");
scanf("%d",&n);
printf("Enter value of each element\n");
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
printf("Enter value to be searched\n");
scanf("%d",&val);
pos = interpol(a,n,val);
if(pos ==-1)
{
printf("Element not found\n");
}
else
{
printf("Element found at position %d",(pos+1));
}
getch();
return 0;
}
int interpol(int a[],int n,int val)
{
int mid,low =0,high = n-1;
while(low<=high)
{
mid = low + (high - low)*((val - a[low])/(a[high] - a[low]));
if(val == a[mid])
{
return mid;
}
if(val<a[mid])
{
high = mid - 1;
}
else
{
low = mid + 1;
}
}
return -1;
}
No comments:
Post a Comment