PTA - 二分查找
二分查找
题目:输入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
#include <iostream>using namespace std;int BinarySearch(int *p, int n, int x, int& count);int main()
{int n;cin >> n;int a[n];for (int i = 0; i < n; i++){cin >> a[i];} int x; // 要查找的数xcin >> x;int count, m;count = 0; // 比较次数m = BinarySearch(a, n, x, count);cout << m << endl;cout << count;
}int BinarySearch(int *p, int n, int x, int& count)
{int low, high, mid;low = 0; high = n - 1;while(low <= high){count++;mid = (low + high) / 2;if (x == p[mid])return mid;else if (x < p[mid])high = mid - 1;elselow = mid + 1;}return -1;
}
PTA - 二分查找相关推荐
- PTA - 二分查找法
二分查找法 题目:用二分法在一个有序数列{1,2,3,4,5,6,7,8,9,10}中查找key值,若找到key则输出其在数组中对应的下标,否则输出not found. 输入格式: 直接输入一个要查找 ...
- PTA 6-10 二分查找
PTA 6-10 二分查找 (20分) 题目链接 ->link 本题要求实现二分查找算法. 函数结构定义 Position BinarySearch( List L, ElementType X ...
- PTA 7-13 列车调度 (25 分) C语言和C++实现(二分查找)
7-13 列车调度 (25 分) 火车站的列车调度铁轨的结构如下图所示. 两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道.每趟列车从入口可以选择任意一条 ...
- PTA 函数题 二分查找(C语言)
本题要求实现二分查找算法. 函数接口定义: Position BinarySearch( List L, ElementType X ); 其中List结构定义如下: typedef int Posi ...
- 算法图解/二分查找/简单查找/选择排序/递归算法/快速排序算法/
大 O 表示法 大 O 表示法在讨论运行时间时,log 指的都是 log2 大 O 表示法指出了算法有多快,让你能够比较操作数,它指出了算法运行时间的增速,而并非以秒为单位的速度. 大 O 表示法指出 ...
- LeetCode简单题之二分查找
题目 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1. 示例 1: 输入: n ...
- 二分查找模板全面总结
二分查找 二分法的引入 情形1 1.X的平方根 2.搜索旋转排序数组 情形2 1.第一个错误的版本 2.寻找峰值 3.寻找旋转排序数组中的最小值 情形3 在排序数组中查找第一个和最后一个位置 当遇到查 ...
- 数据结构与算法(8-2)有序表查找(折半查找(二分查找)、插值查找)
目录 一.折半查找(二分查找) 二.插值查找 总代码 一.折半查找(二分查找) 原理:一次次折半,不断向着查找值的位置靠近 . 适用场景:有序(必须) 流程:开始时,min标志首,max标志尾,med ...
- 二分查找算法的一点改进
在计算机科学中,二分查找,是一种在有序数组中查找某一特定元素的搜索算法.这种搜索算法每一次比较都使搜索范围减半.第一篇二分查找的论文发表于1946年,然而第一个没有bug的二分查找算法却是在1962年 ...
- 二分法:二分查找(递归+非递归)实现
二分查找又称折半查找,首先,假设表中元素是按升序排列,将 表中间位置的关键字与查找关键字比较: 如果两者相等,则查找成功; 否则利用中间位置将表分成前.后两个子表: 1)如果中间位置的关键字大于查找关 ...
最新文章
- CUDA 8混合精度编程
- 微软欢迎所有热爱开源软件的朋友们来投稿![征稿开放时间:2015年8月17日]
- Java学习的30个目标以及系统架构师推荐的书
- (转)Javascript 面向对象编程(一):封装
- android 简单的音乐播放器实现播放模式的切换
- mysql 批量_mysql LOAD语句批量录入数据
- jsp中给div加背景_web前端入门到实战:详解css3如何给背景图片加颜色遮罩
- Ubuntu12.04配置nginx+php+mysql
- oracle客户端ora 12541,Oracle 11g 64bit下程序报ORA-12541: TNS: 无监听程序解决办法
- 如何在python中检查文件大小?
- ROS的学习(十二)用C++写一个简单的发布者
- tomcat查看线程数
- 服务器mac地址变了怎办_获取服务器的IP地址和MAC地址
- 计算机房安全防范措施,机房安全防护方案
- 让聊天机器人来填平技术鸿沟吧!
- 牛牛的旅游纪念品 动态规划背包问题
- ELK学习遇到的问题3--ERROR	pipeline/output.go:100	Failed to connect to backoff(elasticsearch..
- Python经典例题:跑马灯文字效应
- 安卓使用MediaPlayer播放视频
- 【C++】三大易混概念之覆盖
热门文章
- flink(三):数据处理Transformation
- [leetcode]: 506. Relative Ranks
- React Native入门——布局实践:开发京东客户端首页(一)
- 单调栈及单调栈的应用
- 关于 nor it's doXxx() equivalent is defined in action class 的问题解决办法
- 网络——奈奎斯特定理和香农定理
- 2012蓝桥杯省赛真题 鲁卡斯序列
- channel练习题
- Python实现“求职APP网络爬虫”
- 机器学习 笔记04 ---决策树(DT):理论+代码实现