二分查找
来源:互联网 发布:淘宝店兔家公子美妆店 编辑:程序博客网 时间:2024/06/05 21:49
二分查找就是折半查找,主要思想:
将要查找的数与表的中间的元素进行比较,若该数与中间值相等那么查找成功;如果该数大于中间的数,那么这个数一定在右子表中,继续对右子表进行折半查找;若该数比中间值小,那么这个数一定在左子表中,继续对左子表进行差找。知道查找成功或查找失败。
二分查找的函数代码如下:
void binary_search(int arr[], int size, int key)
{
int low, high, mid,count=0,count1=0;
low = 0;
high = size - 1;
while (low <= high)
{
count++;//record for number;
mid = (low + high) / 2;
if (key > arr[mid])
{
low = mid + 1;
}
else if (key < arr[mid])
{
high = mid - 1;
}
else if (key == arr[mid])
{
count1++;
printf("success!\nsearch %d times!arr[%d]=%d", count, mid, key);
break;
}
}
if (count1 == 0)
printf("no found!");
}
主函数代码如下:
int main()
{
int arr[100],key ,n, i;
printf("please input the length of array:\n");
scanf("%d", &n);
printf("please input element:\n");
for (i = 0; i < n;i++)
scanf("%d", &arr[i]);
printf("please input the number which do you want to search:\n");
scanf("%d", &key);
binary_search(arr, n, key);
printf("\n");
system("pause");
return 0;
}
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- a+aa+aaa+aaaa+aaaaa
- 检查机器是大端字节序还是小端字节序
- C语言实现小游戏(二)
- 利用union类型测试机器是大端还是小端(Big_endian or Little_endian)
- 趣味计算:加油站加油
- 二分查找
- 打印杨辉三角
- 用函数调用的方法输出乘法口诀表
- C语言实现小游戏(三) 3*3棋盘游戏
- 在一个字符串中提取子字符串
- 将一个数的二进制位模式从左到右翻转并输出
- 用递归的方法求两个数的最大公约数
- 检查任意数目的整型参数并返回最大值
- tableview中的手势冲突