这个篇介绍的是 没有用到STL的集合算法
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int A[5] = { 11,34,5,7,9 };
int B[5] = { 2,7,1,5,3 };
int C[10];
sort(B,B+5);//对A,B分别进行排序
sort(A,A+5);
int i = 0,m=0 ,j = 0;
while (i < 5 && j < 5)//二分查找法
{
if (A[i] == B[j])
{
C[m] = A[i];//把公共元素放在了C里
i++, j++, m++;
}
else if(A[i] > B[j])
{
j++;
}
else
{
i++;
}
}
for (int i = 0; i < m; i++)//最后输出
{
cout << C[i] << endl;
}
return 0;
}
这个里面的思想也是想到了数据结构里面学习的,拿到两个序列,先排序,使之成为递增排序的序列,然后通过两个里面的下标比较,指针有两个,分别指向A,B,然后,如果相等,ij都加加,如果不等,就只让较小的元素对应的下标加加。