优快云话题挑战赛第2期
参赛话题:学习笔记
学习之路,长路漫漫,写学习笔记的过程就是把知识讲给自己听的过程。这个过程中,我们去记录思考的过程,便于日后复习,梳理自己的思路。学习之乐,独乐乐,不如众乐乐,把知识讲给更多的人听,何乐而不为呢?
今天,在这里分享一种C语言中二分查找的方法。
分享如下:
#include<stdio.>
int binary_search(int arr[], int k, int s)
{
int left = 0;
int right = s - 1;
while (left <= right)
{
int mid = (left + right) / 2;
if (arr[mid] > k)
{
right = mid - 1;
}
else if (arr[mid] < k)
{
left = mid + 1;
}
else
return mid;
}
return -1;
}
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9 };
int key=7;
int sz = sizeof(arr) / sizeof (arr[0]);
int ret = binary_search(arr,key,sz);
if (-1 == ret)
{
printf("没找到");
}
else
printf("找到了,下标是%d", ret);
return 0;
}
欢迎指正