#include <stdio.h>
#define M 10
void binary_chop(int* a,int a_len,int index)//二分查找
{
int i;
int start,end,mid;
start=0;
end=a_len-1;
int flag=0;
while(start<end)
{
mid=(start+end)*0.5;
if(index==a[mid])
{
flag=1;
break;
}
else if(index<a[mid])
{
end=mid-1;
}
else{
start=mid+1;
}
}
if(flag)
printf("zhaodao!\n");
else
printf("error!\n");
}
void lagrange(int* a,int a_len,int index)
{
int i,mid,tou,wei,flag=0;
tou=0;
wei=a_len-1;
while(tou<wei)
{
mid = tou + (wei - tou) *1.0*(index - a[tou]) / (a[wei] - a[tou]);
if(index==a[mid])
{
flag=1;
break;
}
else if(index<a[mid])
{
wei=mid-1;
}
else
{
tou=mid+1;
}
}
if(flag)
{
printf("zhaodao!\n");
}
else
printf("error!\n");
}
int main()
{
int a[M];
int i;
for (i = 0; i < M; i++)
{
a[i] = i+2;
printf("%d ", a[i]);
}
printf("\n请输入要查找的数据:");
int num;
scanf("%d", &num);
lagrange(a,M,num);//拉格朗日
return 0;
}
二分法查找和拉格朗日插值查找
最新推荐文章于 2020-03-22 20:55:52 发布