一、二分查找法
参考书上第9章。
二、算法实现
int sqTable[] = { 0, 5, 13, 19, 21, 37, 56, 64, 75, 80.88, 92 };
//int length = 11;
//==========静态查找方法==================
//二分查找 有序表的查找 Sqlist的[0]元素是为0 作为标杆
int Search_Bin(ElemType e){
//从有序表中查找e元素,找到的话返回数值在数组中的索引,否则返回0
int hign = (sizeof(sqTable) / sizeof(int)) - 1;//0做为开头是标识
int low = 1;
while (low<hign)
{
int mid = (low + hign) / 2;
if (sqTable[mid] == e)
{
//找到的情况
return mid;
}
else if (e < sqTable[mid])
{
//进入左半边
hign = mid - 1;
}
else
{
//进入右半边
low = mid + 1;
}
}
return 0;
}
void main(){
printf("%d", Search_Bin(75));
//Search_Bin(75);
}
输出:
8请按任意键继续. . .