一、折半查找
折半查找只能用于顺序表,又称二分查找,其思想是首先将给定值 key 与表中中间位置的元素比较,看是否查找成功,若没有,则判断待查元素落入哪一个区间,然后对该区间递归的进行二分查找。
int Binary_search(SeqList L, ElemType key)
{
int low = 0, high = L.length-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;
}