博主辛苦了,我要打赏银两给博主,犒劳犒劳站长。
【摘要】用c语言编写一个用"二分查找法"查找一组数中是否存在数 search 的函数。调用该函数,若存在此数,返回此数在数组中的位置;若不存在此数,返回-1,并输出 "NO FOUND" 信息。
完整代码如下:
#include <stdio.h>
// 二分搜索算法
int BinarySearch(int numbers[],int tot,int search)
{
int l = 0;
int r = tot - 1;
int mid = (l + r) / 2;
while(l <= r)
{
// 找到所搜索的数
if(search == numbers[mid])
{
return mid;
}
// 搜索的数在数组的左半部分
if(search < numbers[mid])
{
r = mid - 1;
}else // 在数组的右半部分
{
l = mid + 1;
}
mid = (l + r) / 2;
}
// 没有找到
return -1;
}
int main()
{
int numbers[] = {1,3,5,8,10,22,60,88,112,124,300}; // 递增的有序数列
int search = 22; // 要查找的数
int index; // 找到的数的下标
int tot = sizeof(numbers) / sizeof(numbers[0]); // 数的总数
index = BinarySearch(numbers,tot,search);
if(index == -1)
{
printf("NO FOUND");
}else
{
printf("index is : %d\n", index);
}
}
版权归 马富天PHP博客 所有
本文标题:《C语言二分查找法》
本文链接地址:http://www.mafutian.net/208.html
转载请务必注明出处,小生将不胜感激,谢谢! 喜欢本文或觉得本文对您有帮助,请分享给您的朋友 ^_^
顶0
踩0
第 2 楼 微信投票系统软件 2016-09-21 17:12:25 江苏苏州
第 1 楼 我兜里有糖 2016-09-21 15:19:33 河北廊坊
评论审核未开启 |