二分查找

二分查找某数

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;
}

全部评论

相关推荐

程序员花海:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
牛客78682892...:直接点还好,总比要了简历也不回的强
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务