二分查找——C语言
2012-09-10 14:57
169 查看
进行二分查找的前提是数组已排序,这里假定数组递增排序。
每次查找都将待查找数num与处于数组中间位置a[mid]的数进行比较,num < a[mid]则在mid之前的元素中进行查找,反之在mid之后的元素中进行查找。
在函数中使用low, mid, high来对待查找的范围来进行标记。
/*整数查找*/
void binsearch( int num, int a[], int length ) /*num为待查找数字,length为数组a的长度*/
{
int low, mid, high;
low = 0;
high = length - 1;
while( low <= high )
{
mid = ( low + high ) / 2;
if( a[mid] > num )
high = mid - 1;
else if( a[mid] < num )
low = mid + 1;
else
return mid;
}
return -1 /*未查找到num返回-1*/
}
每次查找都将待查找数num与处于数组中间位置a[mid]的数进行比较,num < a[mid]则在mid之前的元素中进行查找,反之在mid之后的元素中进行查找。
在函数中使用low, mid, high来对待查找的范围来进行标记。
/*整数查找*/
void binsearch( int num, int a[], int length ) /*num为待查找数字,length为数组a的长度*/
{
int low, mid, high;
low = 0;
high = length - 1;
while( low <= high )
{
mid = ( low + high ) / 2;
if( a[mid] > num )
high = mid - 1;
else if( a[mid] < num )
low = mid + 1;
else
return mid;
}
return -1 /*未查找到num返回-1*/
}
相关文章推荐
- C语言:顺序查找和二分查找
- C语言中的排序、二分查找
- C语言:编写查找和排序函数(二分查找,冒泡排序,选择排序法,插入排序)
- C语言实现二分查找
- C语言实现 二分查找 支持降序和升序
- C语言编程中实现二分查找的简单入门实例
- c语言 快速排序 和 二分 查找 模型
- c语言数据结构分析7之 二分查找
- c语言实现二分查找变种题型
- Algorithm学习笔记 --- C语言实现二分查找
- 复习C语言算法——二分查找
- 二分查找的递归和非递归算法(C语言实现)
- 【二分查找】用C语言实现一个有序数组的二分查找
- C语言:折半插入排序与二分查找
- c语言归并、选择、直接插入、冒泡、快速、堆排序与顺序、二分查找
- c语言 数组形参 二分查找 随机种子 猜数游戏
- 【c语言】二分查找
- C语言二分查找算法及实现代码
- 顺序表查找(顺序查找、二分查找) C语言实现
- C语言使用stdlib.h库函数的二分查找和快速排序的实现代码