算法练习-NOJ-1001-二分查找

Posted 神马都素浮云

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法练习-NOJ-1001-二分查找相关的知识,希望对你有一定的参考价值。

时限:1000ms 内存限制:10000K 总时限:3000ms


描述


给定一个单调递增的整数序列,问某个整数是否在序列中。


输入


第一行为一个整数n,表示序列中整数的个数;第二行为n(n不超过10000)个整数;第三行为一个整数m(m不超过50000),表示查询的个数;接下来m行每行一个整数k。


输出


每个查询的输出占一行,如果k在序列中,输出Yes,否则输出No。


输入样例


5

1 3 4 7 11

3

3

6

9


输出样例


Yes

No

No


#include <stdio.h>

int binarySearch(int x, int num[], int begin, int end) { int mid; while (begin <= end) { mid = (begin + end + 1) / 2; if (x == num[mid]) return mid; else if (x > num[mid]) begin = mid + 1; else end = mid - 1; } return -1;}
void main() {
int i,n, m; int num[10000],temp[50000]; scanf("%d",&n); for (i = 0; i < n; i++) { scanf("%d",&num[i]); } scanf("%d\n",&m); for (i = 0; i < m; i++) { scanf("%d",&temp[i]); } for (i = 0; i < m; i++){ if (binarySearch(temp[i], num, 0, n - 1) != -1) printf("Yes\n"); else printf("No\n"); }
}


以上是关于算法练习-NOJ-1001-二分查找的主要内容,如果未能解决你的问题,请参考以下文章

AK leetcode 流浪计划 - 二分查找

算法练习(二分查找/排序)

算法练习(二分查找/排序)

查找算法之“二分查找”

二分算法(java超详细)

Java小练习 数组的复制,反转及查找(线性,二分)