1. 适用范围:
- 数据顺序排列
- 且数据均匀分布
- 数值不大
2. 算法思想:
- 和折半查找唯一不同的地方:
- 中间值mid=
3. 在C语言中的实现:
for(;low<=high;){
mid=low+(key-A[low]/A[high]-A[low])*(high-low);
if(A[mid]==值){
//操作mid
break;
}
else if(k<A[mid]) high=mid-1;
else low=mid+1;
}for(;low<=high;){
mid=low+(key-A[low]/A[high]-A[low])*(high-low);
if(A[mid]==值){
//操作mid
break;
}
else if(k<A[mid]) high=mid-1;
else low=mid+1;
}