查找
线型查找(顺序查找)
使用查找键逐个与数组元素进行比较以实现查找。
int LinSearch (long num[],long x,int n)
{
int i;
for (i = 0; i < n; i++)
{
if (x == num[i])
return i;
}
return -1;
}
折半查找(对分搜索)
int BinSearch (long num[],long x,int n)
{
int low = 0,high = n-1,mid;
while (low <= high) //若左端点小于右端点,则继续查找
{
mid = (low + high)/2; /*若low+high超过了有符号整数的极限值,则mid为负数,可改为mid = low + (high - low)/2; */
if (x > num[mid])
low = mid + 1; //若x>num[mid],修改左端点
else if (x < num[mid])
high = mid - 1; //若x<num[mid],修改右端点
else
return mid;
}
return -1;
}