有序顺序表查询(二分查找)
来源:互联网 发布:java 打印日志log 编辑:程序博客网 时间:2024/05/21 05:21
Problem Description
顺序表内按照由小到大的次序存放着n个互不相同的整数,任意输入一个整数,判断该整数在顺序表中是否存在。如果在顺序表中存在该整数,输出其在表中的序号;否则输出“No Found!”。
Input
第一行输入整数n (1 <= n <= 100000),表示顺序表的元素个数;
第二行依次输入n个各不相同的有序非负整数,代表表里的元素;
第三行输入整数t (1 <= t <= 100000),代表要查询的次数;
第四行依次输入t个非负整数,代表每次要查询的数值。
保证所有输入的数都在 int 范围内。
Output
输出t行,代表t次查询的结果,如果找到在本行输出该元素在表中的位置,否则本行输出No Found!
Example Input
10
1 22 33 55 63 70 74 79 80 87
4
55 10 2 87
Example Output
4
No Found!
No Found!
10
#include<iostream>using namespace std;int TwoInspect(int arr[],int left,int right,int number);int main(){ int n; int arr[100005]; cin>>n; for(int i = 1;i<=n;i++) cin>>arr[i]; int t; cin>>t; while(t--){ int number; cin>>number; if(TwoInspect(arr,1,n,number)==-1) cout<<"No Found!"<<endl; else cout<<TwoInspect(arr,1,n,number)<<endl; } return 0;}int TwoInspect(int arr[],int left,int right,int number){ while(left<=right){ int mid = (left+right)/2; if(arr[mid]>number) right = mid-1; else if(arr[mid]<number) left = mid+1; else return mid; } return -1;}
阅读全文
0 0
- 有序顺序表查询(二分查找)
- SDUT 3330----顺序表应用6:有序顺序表查询(二分查找)
- 二分查找—有序顺序表
- 查找:链表顺序查找和有序数组二分查找
- 查找-顺序,有序表
- 有序表查询之一:java实现整型数组二分查找
- 有序顺序表查询
- 有序表的二分查找
- PHP有序表查找----二分查找(折半)
- 有序表上的查找(二分查找法)
- 查找(顺序,有序)总结
- 有序顺序表的查询
- 顺序表查找、有序表查找、索引顺序表查找
- 有序表查找(二分查找,插值查找,斐波那契查找)
- (转)有序表上的二分查找
- 使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组
- 有序表上的二分查找
- 算法:有序表的二分查找
- 有序顺序表归并
- 抽象类和接口
- ArrayList与迭代器模式
- 详解事件冒泡和捕获
- mysql更新死锁
- 有序顺序表查询(二分查找)
- linux下解决bash: syntax error near unexpected token `(' 的错误
- 四旋翼飞行器姿态解算算法入门视频教程
- OpenGL超级宝典学习笔记——操作矩阵
- 【Android
- HDU 3999----The order of a Tree(二叉树的前序遍历)
- ArrayList源码分析
- openresty 应用与配置分离start|stop|reload脚本
- Unity开发之重写InputField