当前位置: 首页 > news >正文

7-2 二分查找

输入n值(1<=n<=1000)、n个非降序排列的整数以及要查找的数x,使用二分查找算法查找x,输出x所在的下标(0~n-1)及比较次数。若x不存在,输出-1和比较次数。

输入格式:

输入共三行:
第一行是n值;
第二行是n个整数;
第三行是x值。

输出格式:

输出x所在的下标(0~n-1)及比较次数。若x不存在,输出-1和比较次数。

输入样例:

4
1 2 3 4
1

输出样例:

0
2

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

栈限制

8192 KB

#include <stdio.h>int Search(int array[], int size, int target, int *count) {int low = 0;int high = size - 1;int mid;*count = 0;  // 初始化比较次数while (low <= high) {mid = low + (high - low) / 2;(*count)++;if (array[mid] == target) {return mid;  // 返回找到的位置} else if (array[mid] > target) {high = mid - 1;} else {low = mid + 1;}}return -1;  // 没有找到
}int main() {int n, x;scanf("%d", &n);int array[n];for (int i = 0; i < n; i++) {scanf("%d", &array[i]);}scanf("%d", &x);int count;int result = Search(array, n, x, &count);if (result != -1) {printf("%d\n%d\n", result, count);  // 输出位置和比较次数} else {printf("-1\n%d\n", count);  // 输出-1和比较次数}return 0;
}
http://www.lryc.cn/news/501282.html

相关文章:

  • mid360使用cartorapher进行3d建图导航
  • Ubuntu安装grafana
  • Java版-图论-最短路-Floyd算法
  • 可视化建模以及UML期末复习篇----UML图
  • HTML常见标签列表,涵盖了多种用途的标签。
  • FPGA 16 ,Verilog中的位宽:深入理解与应用
  • vue-生命周期
  • 浅谈Kubernetes(K8s)之RC控制器与RS控制器
  • 本题要求采用选择法排序,将给定的n个整数从大到小排序后输出。
  • Linux: glibc: 频繁调用new/delete会不会导致内存的碎片
  • 量子变分算法---损失函数
  • 计算机的性能评估
  • 大数据之国产数据库_OceanBase数据库002_在centos7.9上_安装部署OceanBase001_踩坑指南_亲测可用
  • 【ETCD】【源码阅读】深入解析 EtcdServer.run 函数
  • springboot/ssm校内订餐系统Java代码web项目美食外卖点餐配送源码
  • floodfill算法
  • 【JAVA】六亮增加贴
  • git提交时出现merge branch main of xxx
  • lstm 输入数据的形状是怎么样的,他有两种输入方式,通过参数 batch_first来设置 默认是False
  • Apache Doris 数据类型
  • 编译问题 fatal error: rpc/rpc.h: No such file or directory
  • linux 安装composer
  • 数据库公共字段自动填充的三种实现方案
  • 《MySQL 入门:数据库世界的第一扇门》
  • Qt之第三方库QCustomPlot使用(二)
  • JAVA-类与继承
  • SSH连接报错,Corrupted MAC on input 解决方法
  • 【C++】8___继承
  • C# 中的异常处理:构建健壮和可靠的程序
  • 基于智能合约的医院凭证共享中心路径探析