Binary Search
Posted mjn1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Binary Search相关的知识,希望对你有一定的参考价值。
Search II
You are given a sequence of n integers S and a sequence of different q integers T. Write a program which outputs C, the number of integers in T which are also in the set S.
Input
In the first line n is given. In the second line, n integers are given. In the third line q is given. Then, in the fourth line, q integers are given.
Output
Print C in a line.
Constraints
- Elements in S is sorted in ascending order
- n ≤ 100000
- q ≤ 50000
- 0 ≤ an element in S ≤ 109
- 0 ≤ an element in T ≤ 109
Sample Input 1
5 1 2 3 4 5 3 3 4 1
Sample Output 1
3
Sample Input 2
3 1 2 3 1 5
Sample Output 2
0
Sample Input 3
5 1 1 2 2 3 2 1 2
Sample Output 3
2
#include <iostream> using namespace std; int a[100010], b[50010]; int n, q; int binarySearch(int c) { int mid; int left = 0, right = n - 1; while(left <= right) { mid = left + (right - left) / 2; if(a[mid] == c) { return 1; } else if(c < a[mid]) { right = mid - 1; } else { left = mid + 1; } } return 0; } int main() { int sum = 0; cin >> n; for(int i = 0; i < n; ++ i) cin >> a[i]; cin >> q; for(int i = 0; i < q; ++ i) { cin >> b[i]; if(binarySearch(b[i])) sum ++; } cout << sum << endl; return 0; }
以上是关于Binary Search的主要内容,如果未能解决你的问题,请参考以下文章
PAT1064: Compelte Binary Search Tree
PAT1099:Build A Binary Search Tree