因为两个数组都是排好序的。所以只要一次遍历就行了。首先设两个下标,分别初始化为两个数组的起始地址,依次向前推进。推进的规则是比较两个数组中的数字,小的那个数组的下标向前推进一步,直到任何一个数组的下标到达数组末尾时,如果这时还没碰到相同的数字,说明数组中没有相同的数字。
- bool findCommon(int a[],int size_a,int b[],int size_b)
- {
- int i=0,j=0;
- while(i<size_a&&j<size_b)
- {
- if(a[i]==b[j])
- return true;
- if(a[i]>b[j])
- j++;
- if(a[i]<b[j])
- i++;
- }
- return false;
- }