二分查找

二分查找某数

http://www.nowcoder.com/questionTerminal/1aaf31d6e45b4ddb8cd10d12a660852a

int fun(int a[], int low, int high,int k) // k需要找的数
{
int mid = low + (high - low) / 2;
if (a[mid] == k)
{
return mid;
}
else if(a[mid]<k&&mid<high)
{
return fun(a, mid + 1, high, k);
}
else if(a[mid]>k&&mid>low)
{
return fun(a, low, mid - 1, k);
}
else
{
return -1;
}
}
int main()
{
int n, k;
int *a;
scanf("%d%d", &n, &k);
a = (int *)malloc(n * sizeof(int));//存在问题不能够动态分配(建议使用malloc)
for (int i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
int x = fun(a, 0, n - 1, k);
printf("%d ", x);
return 0;
}

全部评论

相关推荐

头像
11-21 11:39
四川大学 Java
是红鸢啊:忘了还没结束,还有字节的5k 违约金
点赞 评论 收藏
分享
整顿职场的柯基很威猛:这种不可怕,最可怕的是夹在一帮名校里的二本选手,人家才是最稳的。
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务