从2个TXT文档读入整形数据,求交集

CityMann 2017-07-22 03:54:30
有两个(txt)数据i分别存储着升序排列的整形数据(没有重复的数据),写个程序将这两个iwenjian的整形数据的交集找出来,要求程序速度最优
...全文
192 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
VVingerfly 2017-07-22
  • 打赏
  • 举报
回复
两个文件同时挨个读数据,并比较,相等的存下来,不等的数值小的继续读下一个。继续下去直到eof
战在春秋 2017-07-22
  • 打赏
  • 举报
回复
引用
交集找出来
首先需要从txt文件中读入数据存放在数组中,如何读txt文件网上很多参考,可以百度。 以下代码假定这步已经完成,两个数组已经有值了。
int printIntersection(int arr1[], int arr2[], int m, int n)
{
  int i = 0, j = 0;
  while (i < m && j < n)
  {
    if (arr1[i] < arr2[j])
      i++;
    else if (arr2[j] < arr1[i])
      j++;
    else /* if arr1[i] == arr2[j] */
    {
      printf(" %d ", arr2[j++]);
      i++;
    }
  }
}
 
int main()
{
  int arr1[] = {1, 2, 4, 5, 6};
  int arr2[] = {2, 3, 5, 7};
  int m = sizeof(arr1)/sizeof(arr1[0]);
  int n = sizeof(arr2)/sizeof(arr2[0]);
  printIntersection(arr1, arr2, m, n);
  getchar();
  return 0;
}
代码复杂度为O(m + n)

64,681

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧