/**
* 折半查找又称二分查找,算法复杂度为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
分享到:
相关推荐
递归折半查找法基本的程序思想,初学者可以参考一下。
**C语言中的折半查找法(Binary Search)** 折半查找法是一种在有序数组中查找特定元素的高效算法。它的基本思想是利用数组的有序性,每次比较中间元素与目标值,通过比较结果缩小查找范围,进而将查找问题转化为...
2.有15个数存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此数”。以15个数用赋初值的方法在程序中给出。要找的数用scanf函数输入。
在ACM(国际大学生程序设计竞赛)中,折半查找法(又称二分查找法)是一种常见的算法,它被广泛应用于处理有序数据。折半查找法利用了数据的有序性,通过每次比较中间元素来缩小查找范围,从而提高查找效率。下面...
【标题】:“运用非递归方式设计折半查找法的程序” 折半查找,也称为二分查找,是一种在有序数组中寻找特定元素的搜索算法。它的基本思想是每次将待搜索区域减半,直到找到目标元素或者确定目标元素不存在。这种...
**C语言折半查找法** 在计算机科学中,折半查找(也称为二分查找)是一种高效的搜索算法,尤其适用于已排序的数组或列表。它利用了数据结构的有序性,通过每次比较中间元素来缩小搜索范围,从而快速定位目标元素。...