【C语言】二分法函数写法-创新互联
#define _CRT_SECURE_NO_WARNINGS 1
#include#include#includeint key_search(int a[], int k, int s)
{int left = 0;
int right = s - 1;
while (left<= right)
{int mid = (left + right) / 2;
if (a[mid] >k)
{ right = mid - 1;
}
else if (a[mid]< k)
{ left = mid + 1;
}
else
{ return mid;
break;
}
}
if (left >right)
return -1;
}
int main()
{int arr[] = {1,2,3,4,5,6,7,8,9 };
int key = 17;//要找的数
int sz = sizeof(arr) / sizeof(arr[0]);//数组元素个数
//数组传参,实际传递的不是数组本身,而是数组里首元素1地址
int ret=key_search(arr,key,sz);//在数组中的位置
if (ret==-1)
{printf("该数组找不到要寻找的数");
}
else
{printf("在数组中的位置为第%d位", ret);
}
return 0;
}
前天写了二分法,今天用函数的方式把它写了出来。
要值得注意的是,二分法查找只适用于有序数组,且从小到大排列。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
本文题目:【C语言】二分法函数写法-创新互联
网站链接:http://ybzwz.com/article/cdesoh.html