R6-2 二分查找

分数 15
全屏浏览题目
切换布局
作者 张泳
单位 浙大城市学院

已有一个10个元素的整形数组a,且按值从小到大有序。输入一个整数x,然后在数组中查找x,如果找到,输出相应的下标,否则,输出"Not Found"。。
要求编写函数int Bsearch(int *p, int n, int x),找到返回下标,找不到返回-1。

函数接口定义:

 

int Bsearch(int *p, int n, int x);
 

其中 p是数组首地址,n是数组元素个数,x是要查找的值。找到返回下标,找不到返回-1。

裁判测试程序样例:

 

# include<stdio.h>
int Bsearch(int *p, int n, int x);
int main(void)
{
int a[10] = {1,2,3,4,5,6,7,8,9,10};
int x, m;
scanf("%d",&x);
m = Bsearch(a, 10, x);
if(m >= 0)
printf("Index is %d\n",m);
else
printf( "Not Found\n"); return 0;
} /* 请在这里填写答案 */
 

输入样例:

8
 

输出样例:

Index is 7
 
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
 1 int Bsearch(int *p, int n, int x)
2 {
3 int result = -1;
4 int left = 0;
5 int right = n - 1;
6 int mid;
7
8 while(left <= right){
9 mid = (left + right) >> 1;
10 if(p[mid] > x){
11 right = mid - 1;
12 }else if(p[mid] < x){
13 left = mid + 1;
14 }else{
15 result = mid;
16 break;
17 }
18 }
19
20 return result;
21 }

最新文章

  1. 使用TFHelp解析Html
  2. Discuz模拟批量上传附件发帖
  3. Maven引入本地jar包
  4. js获取当前页面信息
  5. 对list集合中的对象按照对象的某一属性进行排序
  6. jsp不能引用js,cs等解决办法
  7. js执行过程
  8. Java笔记(二十三)&hellip;&hellip;Map集合
  9. Android开源项目发现--- 工具类图片缓存篇(持续更新)
  10. hdu 5144 NPY and shot
  11. Different ways of associating known types in wcf
  12. 移动端App混合开发问题 汇总
  13. java 局部变量几点笔记
  14. grep与正则表达式基础
  15. PHPMailer发送邮件中文附件名是乱码
  16. C++学习-9
  17. 2小时学会Spring Boot(IDE:eclipse)
  18. MSP430F5529学习记录
  19. JS高级-异步
  20. JAVA中map的分类和各自的特性

热门文章

  1. autodesk2023全家桶 Autodesk 2023 所有产品下载地址
  2. 微信小程序tabBar不显示的问题
  3. 你到底懂不懂JavaScript?来做做这12道面试题试试!
  4. springboot mybatisPlus集成shiro实现权限控制
  5. Spring的AOP源码解析(一)
  6. 预览服务器上的html静态网页
  7. 【个人笔记】CentOS 修改 SSH 端口, 禁止 ROOT 远程登陆
  8. JS中两个数组对象筛选
  9. python multiprocessing调用cython openmp方法需要采用spawn方式
  10. Go--求数组奇偶数之和