折半查找又称二分查找,仅适用于有序的顺序表,不能用链表。
//查找算法
int binary_search(seqlist L,Elemtype key)
{
int low,high=L.TableLen-1,mid;
while(low<=high)
{
mid=(low<=high)/2;
if(L.elem[mid]==key)
return mid;
else if(L.elem[mid]>key)
high=mid-1;
else
low=mid-1;
}
return -1;
}
分块查找,又称索引顺序查找,算法过程: