有序数组的二分法查找关键字
2015-04-25 18:22
232 查看
使用二分查找算法实现有序数组的关键值查找
/*
有序数组二分查找算法函数sq_Dichotomy_Search<用数组实现>
参数描述:
int array[] :被查找数组
int n :被查找数组元素个数
int key :被查找的关键值
返回值:
如果没有找到: sq_Dichotomy_Search = -1
否则: sq_Dichotomy_Search = key数组下标
*/
int sq_Dichotomy_Search(int array[],int n,int key)
{
int low,high,mid;
low = 0;
high = n - 1;
while(low<=high)
{
mid = (high+low)/2;
if(array[mid] == key)
return(mid);
/**//*key>array[mid] 表明要求查找的值在[mid+1,high]*/
/**//*否则,在[low,mid-1]*/
if(key > array[mid])
low = mid + 1;
else
high = mid - 1;
}
return(-1);
}
/*
有序数组二分查找算法函数sq_Dichotomy_Search<用数组实现>
参数描述:
int array[] :被查找数组
int n :被查找数组元素个数
int key :被查找的关键值
返回值:
如果没有找到: sq_Dichotomy_Search = -1
否则: sq_Dichotomy_Search = key数组下标
*/
int sq_Dichotomy_Search(int array[],int n,int key)
{
int low,high,mid;
low = 0;
high = n - 1;
while(low<=high)
{
mid = (high+low)/2;
if(array[mid] == key)
return(mid);
/**//*key>array[mid] 表明要求查找的值在[mid+1,high]*/
/**//*否则,在[low,mid-1]*/
if(key > array[mid])
low = mid + 1;
else
high = mid - 1;
}
return(-1);
}
相关文章推荐
- 有序数组的二分法查找关键字
- 二分法在有序数组中查找一个数
- 定义数组为有序数组模型,并利用二分法进行查找,删除特定值(缺点:只能删除一个值,若有相同的值,则删除第一个)
- 个人练习数据结构之--------------关于线性数据的有序数组以及之上的二分法查找、不同排序方法的学习
- 二分法在有序数组中进行查找
- 二分法查找有序数组中某元素个数
- 在一个有序数组中查找具体的某个数字——二分法——函数法
- 查找一个有序数组中的一个元素——二分法
- 迭代用在有序数组二分法查找中,递归的二分法查找更简洁,但速度可能会慢一点
- 二分法在数组中查找关键字
- 数据结构与算法--有序数组和二分法查找
- 有序数组二分法查找数值
- 二分法查找有序数组
- C++二分法在数组中查找关键字的方法
- (二)有序数组的二分法查找
- 利用二分法查找有序数组中某一元素
- 二分法查找有序数组
- (笔记)数组 插入式排序法 有序查找二分法
- 二分法实现一个整形有序数组的二分查找
- //二分法查找数组中的某个元素(二分法查找时数组元素必须是有序的)