• Linear Search


    Search I

    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

    • n ≤ 10000
    • q ≤ 500
    • 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
    3 1 2
    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[10005], b[505];
    int n, q;
    
    int search(int *a, int c)
    {
    	int idx = 0;
    	a[n] = c;
    	while(a[idx] != a[n])	idx ++;
    	
    	return idx != n;
    }
    
    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(search(a, b[i]))	sum ++;
    	}
    	
    	cout << sum << endl;
    	
    	return 0;
    }
    

      

  • 相关阅读:
    一键复制文本框内容代码、
    改掉这些坏习惯,你不再是菜鸟
    使用cookie保存页面登录信息
    二维数组转换成一维数组
    jQuery选择器总结
    cookie 和session 的区别详解
    PHP扫雷(转载)。
    PHP简易计算器方法2
    PHP简易计算器方法1
    业务逻辑的存储过程(添加学生的案例)(自动编号)
  • 原文地址:https://www.cnblogs.com/mjn1/p/10744231.html
Copyright © 2020-2023  润新知