1./*
2. * 判断两个有序数组中是否存在相同的数字(要求时间复杂度为O(n))
3. */
4.#include<stdio.h>
5.#include<stdlib.h>
6.
7.bool existthesame(int *a,int n1,int *b,int n2)
8.{
9. int i=0;
10. int j=0;
11. bool flag=false;
12. while(i<n1&&j<n2)
13. {
14. if(*(a+i)==*(b+j))
15. {
16. flag=true;
17. break;
18. }
19. else if(*(a+i)>*(b+j))j++;
20. else i++;
21. }
22. if(i==n1||j==n2)flag=false;
23. return flag;
24.}
25.
26.int main()
27.{
28. int a[]={1,4,7,8};
29. int b[]={2,5,6,9};
30. int n1=sizeof(a)/sizeof(a[0]);
31. int n2=sizeof(b)/sizeof(b[0]);
32. bool flag=existthesame(a,n1,b,n2);
33. if(flag==true)
34. {
35. printf("两个有序数组中存在相同的数字!\n");
36. }
37. else
38. {
39. printf("两个有序数组中不存在相同的数字!\n");
40. }
41. return 0;
42.}
判断两个有序数组中是否存在相同的数字
最新推荐文章于 2020-03-06 22:38:10 发布