本文介绍了插值搜索不适用于特定系列的10个数字的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
#include<stdio.h>
#include<stdlib.h>
int main()
{
int lo,key,m,i,hi;
int arr[10];
printf("enter the elements of array\n");
for(i=0; i<10; i++)
{
scanf("%d",&arr[i]);
}
printf("enter the key\n");
scanf("%d",&key);
lo = 0;
hi = 9;
while(hi >=lo)
{
m = lo+((hi-lo)/(arr[hi]-arr[lo]))*(key-arr[lo]);
if(key == arr[m])
{
printf("key found at location : %d",m);
return 0;
}
else if(key < arr[m])
hi = m-1;
else
lo = m+1;
}
printf("key not found\n");
return 0;
}
我的尝试:
它正常用于其他系列,但是当我运行程序然后放入这个系列时就出现了一些问题。
输入:1,3,5,7,9,11,15 ,16,17,18
键值:12
期望o / p =未找到密钥
实际o / p =分段失败
What I have tried:
it work normally for other series but when i run the program and put this series then there some problem.
input : 1,3,5,7,9,11,15,16,17,18
key value : 12
desired o/p = key not found
actual o/p = segmentation fail
推荐答案
这篇关于插值搜索不适用于特定系列的10个数字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!