2个回答
展开全部
void swap(int v[], int i, int j)
{
int temp;
temp = v[i];
v[i] = v[j];
v[j] = temp;
}
void quicksort(int v[], int n)
{
int i, last = 0;
if(n <= 1)
return;
for(i = 1; i < n; i++)
{
if(v[i] < v[0])
swap(v, ++last, i);
}
swap(v, 0, last);
quicksort(v, last);
quicksort(v+last+1, n-last-1);
}
int statistics(int a[], int na, int b[], int nb)
{
quicksort(a, na);
quicksort(b, nb);
int i = 0, j = 0, count = 0;;
while((i < na) && (j < nb))
{
if(a[i] < b[j])
i++;
else if(a[i] == b[j])
{
count++;
i++;
j++;
}
else
j++;
}
return count;
}
思路就是输入两个数组,再将它们都排好序,然后开始寻找相同的元素。
查找的方法是:当a和b两个数组里从第一个数开始比较,相同则同时往后找,并count加1;
如不想等,则较小的往后找。
提供原文件给你好了。有疑问追问便是!
2013 5 18 17:52
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询