/**
* 折半查找又称二分查找,算法复杂度为O(log(n)),但缺点是要求
* 待查表为有序表,此算法充分利用了数组的有序性,采用分治策略
* 找出待查元素在数组中的位置,若数组中不存在该元素,则返回-1
*/
#include <stdio.h>
int binary_search(int array[], int n, int data)
{
int low = 0, high = n - 1, mid;
while(high >= low)
{
mid = (low + high) / 2;
if(array[mid] == data)
return mid;
else if(array[mid] > data)
high = mid - 1;
else
low = mid + 1;
}
return -1;
}
main()
{
int array[] = {1, 5, 30, 41, 100, 101};
printf("%d\n", binary_search(array, 6, 101));
printf("%d\n", binary_search(array, 6, 2));
}
运行结果:
5
-1
分享到:
相关推荐
递归折半查找法基本的程序思想,初学者可以参考一下。
查找问题(顺序查找法, 折半查找法,)基本思想:一列数放在数组a(1)---a(n)中,待查找的数放在x 中,把x与a数组中的元素从头到尾一一进行比较查找。用变量p表示a数组元素下标,p初值为1,使x与a(p)比较,如果x不等于a...
2.有15个数存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此数”。以15个数用赋初值的方法在程序中给出。要找的数用scanf函数输入。
西工大C 毕设论文:折半查找法演示器,里面包括了一个毕业论文的模板,本程序演示的功能是折半查找法,测试时请输入你想要查找数据的数据表列的数据个数(1--50),还需要输入你要在其中查找数据的数据表列(%d个数据...
折半查找法也叫做二分查找,顾名思义,就是把数据分成两半,再判断所查找的key在哪一半中,再重复上述步骤知道找到目标key; 注意:折半查找法仅适用于对已有顺序的数组、数据进行操作!!! 很显然,折半查找法相...
C++数据结构折半查找法二分查找法,算法设计新颖,有利于数据结构初学者的学习!
改进的选择排序法 和 折半查找法 的C代码, 已测试.
public int searchNumber(double num, boolean updown) {// 折半查找算法 int left = 0, right = Array.length - 1, middle = -1; while (left ) { middle = (left + right) / 2; if (num == Array[middle]) ...
有15个数折半查找法 在上述代码中,`binarySearch`函数实现了折半查找算法。通过维护两个指针`left`和`right`来确定当前的查找范围。在每一次循环中,计算中间元素的索引`mid`,然后用目标值与中间元素进行比较。...
有15个数折半查找法。 有15个数折半查找法.docx python
数据结构折半查找,用于C语言版的数据结构。
C语言折半查找法(超详细)
有15个数折半查找法
内含acm折半查找例题、源代码、测试数据。
折半查找c语言函数, 在数组总查找 例子
5-7折半查找法.c
折半查找法PPT学习教案.pptx
本资源是用C语言所写的数据结构中折半查找法,代码比较简单,基础好的就不必下载了,浪费积分。
使用折半查找,输入一个整数,查找是否在数组中,如在给出下标,否则-1
折半查找算法,c、c++,数据结构课本中讲解的算法实现。