下列算法的功能为:采用折半方法进行关键字的查找,请将算法中缺失的语句按照顺序填入对应的空格。 结构定义: typedef int KeyType; typedef struct{ KeyType key; }ElemType; typedef struct { ElemType *elem; int length; } SSTable; 折半查找算法: int Search_Bin(SSTable &ST,KeyType key){ //在有序表ST中折半查找其关键字等于key的数据元素 //若找到,则函数值为该元素在表中的位置,否则为0 int low=1, high=ST.length,mid; while(low<=high){ ; // (1) if(EQ(key, )) // (2) return mid; else if(LT(key,ST.elem[mid].key)) ; // (3) else ; // (4) } return 0; }
时间: 2024-02-15 12:27:26 浏览: 65
折半查找及其改进算法及数据结构课程设计报告.doc
5星 · 资源好评率100%
折半查找算法:
int Search_Bin(SSTable &ST,KeyType key){
//在有序表ST中折半查找其关键字等于key的数据元素
//若找到,则函数值为该元素在表中的位置,否则为0
int low=1, high=ST.length,mid;
while(low<=high){
mid = (low+high)/2; // (1) 折半计算中间位置
if(EQ(key, ST.elem[mid].key)) // (2) 关键字与中间位置元素相等
return mid;
else if(LT(key,ST.elem[mid].key)) // (3) 关键字小于中间位置元素
high = mid-1;
else // (4) 关键字大于中间位置元素
low = mid+1;
}
return 0;
}
阅读全文